summaryrefslogtreecommitdiff
path: root/gr-blocks/python
diff options
context:
space:
mode:
authorJosh Morman <mormjb@gmail.com>2020-04-23 08:05:31 -0400
committerJosh Morman <mormjb@gmail.com>2020-06-04 10:05:47 -0400
commit8714e249cdfeb1da4405c35ecc8ab718e4e7dcc6 (patch)
treeba54f56c0f9951855ddade5f426ad34c9efb0ce0 /gr-blocks/python
parent2aaa3593989a709911a83aa4890a8f6a22c484f3 (diff)
blocks: add pybind11 bindings
Diffstat (limited to 'gr-blocks/python')
-rw-r--r--gr-blocks/python/blocks/CMakeLists.txt4
-rw-r--r--gr-blocks/python/blocks/__init__.py6
-rw-r--r--gr-blocks/python/blocks/bindings/CMakeLists.txt175
-rw-r--r--gr-blocks/python/blocks/bindings/abs_blk_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/add_blk_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/add_const_bb_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/add_const_cc_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/add_const_ff_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/add_const_ii_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/add_const_ss_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/add_const_v_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/and_blk_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/and_const_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/annotator_1to1_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/annotator_alltoall_python.cc44
-rw-r--r--gr-blocks/python/blocks/bindings/annotator_raw_python.cc47
-rw-r--r--gr-blocks/python/blocks/bindings/argmax_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/burst_tagger_python.cc51
-rw-r--r--gr-blocks/python/blocks/bindings/char_to_float_python.cc49
-rw-r--r--gr-blocks/python/blocks/bindings/char_to_short_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/check_lfsr_32k_s_python.cc47
-rw-r--r--gr-blocks/python/blocks/bindings/complex_to_arg_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/complex_to_float_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/complex_to_imag_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/complex_to_interleaved_char_python.cc48
-rw-r--r--gr-blocks/python/blocks/bindings/complex_to_interleaved_short_python.cc48
-rw-r--r--gr-blocks/python/blocks/bindings/complex_to_mag_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/complex_to_mag_squared_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/complex_to_magphase_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/complex_to_real_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/conjugate_cc_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/control_loop_python.cc139
-rw-r--r--gr-blocks/python/blocks/bindings/copy_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/correctiq_auto_python.cc61
-rw-r--r--gr-blocks/python/blocks/bindings/correctiq_man_python.cc59
-rw-r--r--gr-blocks/python/blocks/bindings/correctiq_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/correctiq_swapiq_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/count_bits_python.cc36
-rw-r--r--gr-blocks/python/blocks/bindings/ctrlport_probe2_b_python.cc52
-rw-r--r--gr-blocks/python/blocks/bindings/ctrlport_probe2_c_python.cc52
-rw-r--r--gr-blocks/python/blocks/bindings/ctrlport_probe2_f_python.cc52
-rw-r--r--gr-blocks/python/blocks/bindings/ctrlport_probe2_i_python.cc52
-rw-r--r--gr-blocks/python/blocks/bindings/ctrlport_probe2_s_python.cc52
-rw-r--r--gr-blocks/python/blocks/bindings/ctrlport_probe_c_python.cc44
-rw-r--r--gr-blocks/python/blocks/bindings/deinterleave_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/delay_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/divide_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/abs_blk_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/add_blk_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/add_const_bb_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/add_const_cc_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/add_const_ff_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/add_const_ii_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/add_const_ss_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/add_const_v_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/and_blk_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/and_const_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/annotator_1to1_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/annotator_alltoall_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/annotator_raw_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/argmax_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/burst_tagger_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/char_to_float_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/char_to_short_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/check_lfsr_32k_s_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/complex_to_arg_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/complex_to_float_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/complex_to_imag_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/complex_to_interleaved_char_pydoc_template.h35
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/complex_to_interleaved_short_pydoc_template.h35
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/complex_to_mag_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/complex_to_mag_squared_pydoc_template.h25
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/complex_to_magphase_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/complex_to_real_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/conjugate_cc_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/control_loop_pydoc_template.h90
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/copy_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/correctiq_auto_pydoc_template.h39
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/correctiq_man_pydoc_template.h39
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/correctiq_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/correctiq_swapiq_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/count_bits_pydoc_template.h27
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_b_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_c_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_f_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_i_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_s_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe_c_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/deinterleave_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/delay_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/divide_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/endian_swap_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/exponentiate_const_cci_pydoc_template.h32
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/file_descriptor_sink_pydoc_template.h25
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/file_descriptor_source_pydoc_template.h29
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/file_meta_sink_pydoc_template.h39
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/file_meta_source_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/file_sink_base_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/file_sink_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/file_source_pydoc_template.h39
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/float_to_char_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/float_to_complex_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/float_to_int_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/float_to_short_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/float_to_uchar_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/head_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/int_to_float_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/integrate_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/interleave_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/interleaved_char_to_complex_pydoc_template.h35
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/interleaved_short_to_complex_pydoc_template.h38
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/keep_m_in_n_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/keep_one_in_n_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/lfsr_15_1_0_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/lfsr_32k_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/lfsr_32k_source_s_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/log2_const_pydoc_template.h48
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/magphase_to_complex_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/max_blk_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/message_debug_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/message_strobe_pydoc_template.h39
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/message_strobe_random_pydoc_template.h53
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/min_blk_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/moving_average_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/multiply_by_tag_value_cc_pydoc_template.h32
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/multiply_conjugate_cc_pydoc_template.h25
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/multiply_const_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/multiply_const_v_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/multiply_matrix_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/multiply_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/mute_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/nlog10_ff_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/nop_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/not_blk_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/null_sink_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/null_source_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/or_blk_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/pack_k_bits_bb_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/pack_k_bits_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/packed_to_unpacked_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/patterned_interleaver_pydoc_template.h25
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/pdu_filter_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/pdu_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/pdu_remove_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/pdu_set_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/pdu_to_tagged_stream_pydoc_template.h25
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/peak_detector2_fb_pydoc_template.h46
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/peak_detector_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/plateau_detector_fb_pydoc_template.h35
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/probe_rate_pydoc_template.h39
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/probe_signal_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/probe_signal_v_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/random_pdu_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/regenerate_bb_pydoc_template.h39
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/repack_bits_bb_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/repeat_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/rms_cf_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/rms_ff_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/rotator_cc_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/rotator_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/sample_and_hold_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/selector_pydoc_template.h45
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/short_to_char_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/short_to_float_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/skiphead_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/socket_pdu_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/stream_mux_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/stream_to_streams_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/stream_to_tagged_stream_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/stream_to_vector_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/streams_to_stream_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/streams_to_vector_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/stretch_ff_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/sub_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tag_debug_pydoc_template.h45
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tag_gate_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tag_share_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tagged_file_sink_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tagged_stream_align_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tagged_stream_multiply_length_pydoc_template.h34
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tagged_stream_mux_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tagged_stream_to_pdu_pydoc_template.h25
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tags_strobe_pydoc_template.h45
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tcp_server_sink_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/test_tag_variable_rate_ff_pydoc_template.h25
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/threshold_ff_pydoc_template.h45
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/throttle_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/transcendental_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tsb_vector_sink_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/tuntap_pdu_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/uchar_to_float_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/udp_sink_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/udp_source_pydoc_template.h39
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/unpack_k_bits_bb_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/unpack_k_bits_pydoc_template.h33
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/unpacked_to_packed_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/vco_c_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/vco_f_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/vector_insert_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/vector_map_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/vector_sink_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/vector_source_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/vector_to_stream_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/vector_to_streams_pydoc_template.h24
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/wavfile_pydoc_template.h30
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/wavfile_sink_pydoc_template.h39
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/wavfile_source_pydoc_template.h36
-rw-r--r--gr-blocks/python/blocks/bindings/docstrings/xor_blk_pydoc_template.h15
-rw-r--r--gr-blocks/python/blocks/bindings/endian_swap_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/exponentiate_const_cci_python.cc47
-rw-r--r--gr-blocks/python/blocks/bindings/file_descriptor_sink_python.cc42
-rw-r--r--gr-blocks/python/blocks/bindings/file_descriptor_source_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/file_meta_sink_python.cc74
-rw-r--r--gr-blocks/python/blocks/bindings/file_meta_source_python.cc56
-rw-r--r--gr-blocks/python/blocks/bindings/file_sink_base_python.cc49
-rw-r--r--gr-blocks/python/blocks/bindings/file_sink_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/file_source_python.cc68
-rw-r--r--gr-blocks/python/blocks/bindings/float_to_char_python.cc49
-rw-r--r--gr-blocks/python/blocks/bindings/float_to_complex_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/float_to_int_python.cc49
-rw-r--r--gr-blocks/python/blocks/bindings/float_to_short_python.cc49
-rw-r--r--gr-blocks/python/blocks/bindings/float_to_uchar_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/head_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/int_to_float_python.cc49
-rw-r--r--gr-blocks/python/blocks/bindings/integrate_python.cc42
-rw-r--r--gr-blocks/python/blocks/bindings/interleave_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/interleaved_char_to_complex_python.cc48
-rw-r--r--gr-blocks/python/blocks/bindings/interleaved_short_to_complex_python.cc55
-rw-r--r--gr-blocks/python/blocks/bindings/keep_m_in_n_python.cc51
-rw-r--r--gr-blocks/python/blocks/bindings/keep_one_in_n_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/lfsr_15_1_0_python.cc46
-rw-r--r--gr-blocks/python/blocks/bindings/lfsr_32k_python.cc48
-rw-r--r--gr-blocks/python/blocks/bindings/lfsr_32k_source_s_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/log2_const_python.cc35
-rw-r--r--gr-blocks/python/blocks/bindings/magphase_to_complex_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/max_blk_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/message_debug_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/message_strobe_python.cc57
-rw-r--r--gr-blocks/python/blocks/bindings/message_strobe_random_python.cc85
-rw-r--r--gr-blocks/python/blocks/bindings/min_blk_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/moving_average_python.cc52
-rw-r--r--gr-blocks/python/blocks/bindings/multiply_by_tag_value_cc_python.cc44
-rw-r--r--gr-blocks/python/blocks/bindings/multiply_conjugate_cc_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/multiply_const_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/multiply_const_v_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/multiply_matrix_python.cc42
-rw-r--r--gr-blocks/python/blocks/bindings/multiply_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/mute_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/nlog10_ff_python.cc42
-rw-r--r--gr-blocks/python/blocks/bindings/nop_python.cc45
-rw-r--r--gr-blocks/python/blocks/bindings/not_blk_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/null_sink_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/null_source_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/or_blk_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/pack_k_bits_bb_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/pack_k_bits_python.cc61
-rw-r--r--gr-blocks/python/blocks/bindings/packed_to_unpacked_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/patterned_interleaver_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/pdu_filter_python.cc50
-rw-r--r--gr-blocks/python/blocks/bindings/pdu_python.cc63
-rw-r--r--gr-blocks/python/blocks/bindings/pdu_remove_python.cc37
-rw-r--r--gr-blocks/python/blocks/bindings/pdu_set_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/pdu_to_tagged_stream_python.cc45
-rw-r--r--gr-blocks/python/blocks/bindings/peak_detector2_fb_python.cc73
-rw-r--r--gr-blocks/python/blocks/bindings/peak_detector_python.cc55
-rw-r--r--gr-blocks/python/blocks/bindings/plateau_detector_fb_python.cc51
-rw-r--r--gr-blocks/python/blocks/bindings/probe_rate_python.cc56
-rw-r--r--gr-blocks/python/blocks/bindings/probe_signal_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/probe_signal_v_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/python_bindings.cc360
-rw-r--r--gr-blocks/python/blocks/bindings/random_pdu_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/regenerate_bb_python.cc58
-rw-r--r--gr-blocks/python/blocks/bindings/repack_bits_bb_python.cc50
-rw-r--r--gr-blocks/python/blocks/bindings/repeat_python.cc50
-rw-r--r--gr-blocks/python/blocks/bindings/rms_cf_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/rms_ff_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/rotator_cc_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/rotator_python.cc56
-rw-r--r--gr-blocks/python/blocks/bindings/sample_and_hold_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/selector_python.cc65
-rw-r--r--gr-blocks/python/blocks/bindings/short_to_char_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/short_to_float_python.cc49
-rw-r--r--gr-blocks/python/blocks/bindings/skiphead_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/socket_pdu_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/stream_mux_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/stream_to_streams_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/stream_to_tagged_stream_python.cc55
-rw-r--r--gr-blocks/python/blocks/bindings/stream_to_vector_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/streams_to_stream_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/streams_to_vector_python.cc42
-rw-r--r--gr-blocks/python/blocks/bindings/stretch_ff_python.cc49
-rw-r--r--gr-blocks/python/blocks/bindings/sub_python.cc36
-rw-r--r--gr-blocks/python/blocks/bindings/tag_debug_python.cc68
-rw-r--r--gr-blocks/python/blocks/bindings/tag_gate_python.cc55
-rw-r--r--gr-blocks/python/blocks/bindings/tag_share_python.cc42
-rw-r--r--gr-blocks/python/blocks/bindings/tagged_file_sink_python.cc42
-rw-r--r--gr-blocks/python/blocks/bindings/tagged_stream_align_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/tagged_stream_multiply_length_python.cc48
-rw-r--r--gr-blocks/python/blocks/bindings/tagged_stream_mux_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/tagged_stream_to_pdu_python.cc45
-rw-r--r--gr-blocks/python/blocks/bindings/tags_strobe_python.cc66
-rw-r--r--gr-blocks/python/blocks/bindings/tcp_server_sink_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/test_tag_variable_rate_ff_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/threshold_ff_python.cc62
-rw-r--r--gr-blocks/python/blocks/bindings/throttle_python.cc50
-rw-r--r--gr-blocks/python/blocks/bindings/transcendental_python.cc41
-rw-r--r--gr-blocks/python/blocks/bindings/tsb_vector_sink_python.cc45
-rw-r--r--gr-blocks/python/blocks/bindings/tuntap_pdu_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/uchar_to_float_python.cc38
-rw-r--r--gr-blocks/python/blocks/bindings/udp_sink_python.cc56
-rw-r--r--gr-blocks/python/blocks/bindings/udp_source_python.cc59
-rw-r--r--gr-blocks/python/blocks/bindings/unpack_k_bits_bb_python.cc40
-rw-r--r--gr-blocks/python/blocks/bindings/unpack_k_bits_python.cc61
-rw-r--r--gr-blocks/python/blocks/bindings/unpacked_to_packed_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/vco_c_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/vco_f_python.cc39
-rw-r--r--gr-blocks/python/blocks/bindings/vector_insert_python.cc42
-rw-r--r--gr-blocks/python/blocks/bindings/vector_map_python.cc47
-rw-r--r--gr-blocks/python/blocks/bindings/vector_sink_python.cc45
-rw-r--r--gr-blocks/python/blocks/bindings/vector_source_python.cc63
-rw-r--r--gr-blocks/python/blocks/bindings/vector_to_stream_python.cc43
-rw-r--r--gr-blocks/python/blocks/bindings/vector_to_streams_python.cc42
-rw-r--r--gr-blocks/python/blocks/bindings/wavfile_python.cc70
-rw-r--r--gr-blocks/python/blocks/bindings/wavfile_sink_python.cc61
-rw-r--r--gr-blocks/python/blocks/bindings/wavfile_source_python.cc51
-rw-r--r--gr-blocks/python/blocks/bindings/xor_blk_python.cc38
-rw-r--r--gr-blocks/python/blocks/qa_add_mult_div_sub.py130
-rw-r--r--gr-blocks/python/blocks/qa_add_mult_v.py194
-rw-r--r--gr-blocks/python/blocks/qa_affinity.py2
-rw-r--r--gr-blocks/python/blocks/qa_argmax.py10
-rw-r--r--gr-blocks/python/blocks/qa_block_gateway.py13
-rw-r--r--gr-blocks/python/blocks/qa_boolean_operators.py82
-rw-r--r--gr-blocks/python/blocks/qa_conjugate.py8
-rw-r--r--gr-blocks/python/blocks/qa_copy.py8
-rw-r--r--gr-blocks/python/blocks/qa_delay.py4
-rw-r--r--gr-blocks/python/blocks/qa_exponentiate_const_cci.py4
-rw-r--r--gr-blocks/python/blocks/qa_head.py4
-rw-r--r--gr-blocks/python/blocks/qa_hier_block2.py50
-rw-r--r--gr-blocks/python/blocks/qa_integrate.py12
-rw-r--r--gr-blocks/python/blocks/qa_keep_one_in_n.py6
-rw-r--r--gr-blocks/python/blocks/qa_max.py32
-rw-r--r--gr-blocks/python/blocks/qa_message.py87
-rw-r--r--gr-blocks/python/blocks/qa_min.py32
-rw-r--r--gr-blocks/python/blocks/qa_moving_average.py10
-rw-r--r--gr-blocks/python/blocks/qa_multiply_conjugate.py12
-rw-r--r--gr-blocks/python/blocks/qa_mute.py16
-rw-r--r--gr-blocks/python/blocks/qa_pack_k_bits.py20
-rw-r--r--gr-blocks/python/blocks/qa_packed_to_unpacked.py54
-rw-r--r--gr-blocks/python/blocks/qa_peak_detector.py12
-rw-r--r--gr-blocks/python/blocks/qa_peak_detector2.py24
-rw-r--r--gr-blocks/python/blocks/qa_pipe_fittings.py8
-rw-r--r--gr-blocks/python/blocks/qa_plateau_detector_fb.py4
-rw-r--r--gr-blocks/python/blocks/qa_regenerate.py6
-rw-r--r--gr-blocks/python/blocks/qa_repack_bits_bb.py32
-rw-r--r--gr-blocks/python/blocks/qa_selector.py8
-rw-r--r--gr-blocks/python/blocks/qa_skiphead.py14
-rw-r--r--gr-blocks/python/blocks/qa_stream_mux.py28
-rw-r--r--gr-blocks/python/blocks/qa_stream_to_tagged_stream.py2
-rw-r--r--gr-blocks/python/blocks/qa_tag_file_sink.py4
-rwxr-xr-xgr-blocks/python/blocks/qa_tag_share.py4
-rw-r--r--gr-blocks/python/blocks/qa_tagged_stream_mux.py4
-rw-r--r--gr-blocks/python/blocks/qa_threshold.py2
-rw-r--r--gr-blocks/python/blocks/qa_throttle.py4
-rw-r--r--gr-blocks/python/blocks/qa_tsb_vector_sink_X.py2
-rw-r--r--gr-blocks/python/blocks/qa_type_conversions.py58
-rw-r--r--gr-blocks/python/blocks/qa_udp_source_sink.py12
-rw-r--r--gr-blocks/python/blocks/qa_unpack_k_bits.py8
-rw-r--r--gr-blocks/python/blocks/qa_vector_map.py12
-rw-r--r--gr-blocks/python/blocks/qa_vector_sink_source.py23
-rw-r--r--gr-blocks/python/blocks/stream_to_vector_decimator.py2
370 files changed, 13104 insertions, 534 deletions
diff --git a/gr-blocks/python/blocks/CMakeLists.txt b/gr-blocks/python/blocks/CMakeLists.txt
index 59ebde6b6e..82b5e6bf1d 100644
--- a/gr-blocks/python/blocks/CMakeLists.txt
+++ b/gr-blocks/python/blocks/CMakeLists.txt
@@ -28,8 +28,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
)
include(GrTest)
@@ -51,3 +49,5 @@ if(ENABLE_TESTING)
endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
+
+add_subdirectory(bindings)
diff --git a/gr-blocks/python/blocks/__init__.py b/gr-blocks/python/blocks/__init__.py
index c4eab53ce6..504c61711a 100644
--- a/gr-blocks/python/blocks/__init__.py
+++ b/gr-blocks/python/blocks/__init__.py
@@ -17,11 +17,11 @@ from __future__ import unicode_literals
import os
try:
- from .blocks_swig import *
+ from .blocks_python import *
except ImportError:
dirname, filename = os.path.split(os.path.abspath(__file__))
- __path__.append(os.path.join(dirname, "..", "..", "swig"))
- from .blocks_swig import *
+ __path__.append(os.path.join(dirname, "bindings"))
+ from .blocks_python import *
from .stream_to_vector_decimator import *
from .msg_meta_to_pair import meta_to_pair
diff --git a/gr-blocks/python/blocks/bindings/CMakeLists.txt b/gr-blocks/python/blocks/bindings/CMakeLists.txt
new file mode 100644
index 0000000000..adc1696354
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/CMakeLists.txt
@@ -0,0 +1,175 @@
+include(GrPybind)
+
+########################################################################
+# Python Bindings
+########################################################################
+list(APPEND blocks_python_files
+ abs_blk_python.cc
+ add_blk_python.cc
+ add_const_bb_python.cc
+ add_const_cc_python.cc
+ add_const_ff_python.cc
+ add_const_ii_python.cc
+ add_const_ss_python.cc
+ add_const_v_python.cc
+ and_blk_python.cc
+ and_const_python.cc
+ annotator_1to1_python.cc
+ annotator_alltoall_python.cc
+ annotator_raw_python.cc
+ argmax_python.cc
+ burst_tagger_python.cc
+ char_to_float_python.cc
+ char_to_short_python.cc
+ check_lfsr_32k_s_python.cc
+ complex_to_arg_python.cc
+ complex_to_float_python.cc
+ complex_to_imag_python.cc
+ complex_to_interleaved_char_python.cc
+ complex_to_interleaved_short_python.cc
+ complex_to_mag_python.cc
+ complex_to_mag_squared_python.cc
+ complex_to_magphase_python.cc
+ complex_to_real_python.cc
+ conjugate_cc_python.cc
+ control_loop_python.cc
+ copy_python.cc
+ correctiq_python.cc
+ correctiq_auto_python.cc
+ correctiq_man_python.cc
+ correctiq_swapiq_python.cc
+ count_bits_python.cc
+ # ctrlport_probe2_b_python.cc
+ # ctrlport_probe2_c_python.cc
+ # ctrlport_probe2_f_python.cc
+ # ctrlport_probe2_i_python.cc
+ # ctrlport_probe2_s_python.cc
+ # ctrlport_probe_c_python.cc
+ deinterleave_python.cc
+ delay_python.cc
+ divide_python.cc
+ endian_swap_python.cc
+ exponentiate_const_cci_python.cc
+ file_descriptor_sink_python.cc
+ file_descriptor_source_python.cc
+ file_meta_sink_python.cc
+ file_meta_source_python.cc
+ file_sink_python.cc
+ file_sink_base_python.cc
+ file_source_python.cc
+ float_to_char_python.cc
+ float_to_complex_python.cc
+ float_to_int_python.cc
+ float_to_short_python.cc
+ float_to_uchar_python.cc
+ head_python.cc
+ int_to_float_python.cc
+ integrate_python.cc
+ interleave_python.cc
+ interleaved_char_to_complex_python.cc
+ interleaved_short_to_complex_python.cc
+ keep_m_in_n_python.cc
+ keep_one_in_n_python.cc
+ lfsr_15_1_0_python.cc
+ lfsr_32k_python.cc
+ lfsr_32k_source_s_python.cc
+ # log2_const_python.cc
+ magphase_to_complex_python.cc
+ max_blk_python.cc
+ message_debug_python.cc
+ message_strobe_python.cc
+ message_strobe_random_python.cc
+ min_blk_python.cc
+ moving_average_python.cc
+ multiply_python.cc
+ multiply_by_tag_value_cc_python.cc
+ multiply_conjugate_cc_python.cc
+ multiply_const_python.cc
+ multiply_const_v_python.cc
+ multiply_matrix_python.cc
+ mute_python.cc
+ nlog10_ff_python.cc
+ nop_python.cc
+ not_blk_python.cc
+ null_sink_python.cc
+ null_source_python.cc
+ or_blk_python.cc
+ # pack_k_bits_python.cc
+ pack_k_bits_bb_python.cc
+ packed_to_unpacked_python.cc
+ patterned_interleaver_python.cc
+ pdu_python.cc
+ pdu_filter_python.cc
+ pdu_remove_python.cc
+ pdu_set_python.cc
+ pdu_to_tagged_stream_python.cc
+ peak_detector_python.cc
+ peak_detector2_fb_python.cc
+ plateau_detector_fb_python.cc
+ probe_rate_python.cc
+ probe_signal_python.cc
+ probe_signal_v_python.cc
+ random_pdu_python.cc
+ regenerate_bb_python.cc
+ repack_bits_bb_python.cc
+ repeat_python.cc
+ rms_cf_python.cc
+ rms_ff_python.cc
+ rotator_python.cc
+ rotator_cc_python.cc
+ sample_and_hold_python.cc
+ selector_python.cc
+ short_to_char_python.cc
+ short_to_float_python.cc
+ skiphead_python.cc
+ socket_pdu_python.cc
+ stream_mux_python.cc
+ stream_to_streams_python.cc
+ stream_to_tagged_stream_python.cc
+ stream_to_vector_python.cc
+ streams_to_stream_python.cc
+ streams_to_vector_python.cc
+ stretch_ff_python.cc
+ sub_python.cc
+ tag_debug_python.cc
+ tag_gate_python.cc
+ tag_share_python.cc
+ tagged_file_sink_python.cc
+ tagged_stream_align_python.cc
+ tagged_stream_multiply_length_python.cc
+ tagged_stream_mux_python.cc
+ tagged_stream_to_pdu_python.cc
+ tags_strobe_python.cc
+ tcp_server_sink_python.cc
+ test_tag_variable_rate_ff_python.cc
+ threshold_ff_python.cc
+ throttle_python.cc
+ transcendental_python.cc
+ tsb_vector_sink_python.cc
+ tuntap_pdu_python.cc
+ uchar_to_float_python.cc
+ udp_sink_python.cc
+ udp_source_python.cc
+ unpack_k_bits_python.cc
+ unpack_k_bits_bb_python.cc
+ unpacked_to_packed_python.cc
+ vco_c_python.cc
+ vco_f_python.cc
+ vector_insert_python.cc
+ vector_map_python.cc
+ vector_sink_python.cc
+ vector_source_python.cc
+ vector_to_stream_python.cc
+ vector_to_streams_python.cc
+ wavfile_python.cc
+ wavfile_sink_python.cc
+ wavfile_source_python.cc
+ xor_blk_python.cc
+ python_bindings.cc)
+
+GR_PYBIND_MAKE(blocks
+ ../../..
+ gr::blocks
+ "${blocks_python_files}")
+
+install(TARGETS blocks_python DESTINATION ${GR_PYTHON_DIR}/gnuradio/blocks COMPONENT pythonapi)
diff --git a/gr-blocks/python/blocks/bindings/abs_blk_python.cc b/gr-blocks/python/blocks/bindings/abs_blk_python.cc
new file mode 100644
index 0000000000..f0a1589a92
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/abs_blk_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/blocks/abs_blk.h>
+
+template <typename T>
+void bind_abs_template(py::module& m, const char* classname)
+{
+ using abs_blk = gr::blocks::abs_blk<T>;
+
+ py::class_<abs_blk,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<abs_blk>>(m, classname)
+ .def(py::init(&gr::blocks::abs_blk<T>::make), py::arg("vlen") = 1);
+}
+
+void bind_abs_blk(py::module& m)
+{
+ bind_abs_template<std::int16_t>(m, "abs_ss");
+ bind_abs_template<std::int32_t>(m, "abs_ii");
+ bind_abs_template<float>(m, "abs_ff");
+}
diff --git a/gr-blocks/python/blocks/bindings/add_blk_python.cc b/gr-blocks/python/blocks/bindings/add_blk_python.cc
new file mode 100644
index 0000000000..e797bf243b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/add_blk_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/add_blk.h>
+
+template <typename T>
+void bind_add_template(py::module& m, const char* classname)
+{
+ using add_blk = gr::blocks::add_blk<T>;
+
+ py::class_<add_blk,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<add_blk>>(m, classname)
+ .def(py::init(&gr::blocks::add_blk<T>::make), py::arg("vlen") = 1);
+}
+
+void bind_add_blk(py::module& m)
+{
+ bind_add_template<std::int16_t>(m, "add_ss");
+ bind_add_template<std::int32_t>(m, "add_ii");
+ bind_add_template<float>(m, "add_ff");
+ bind_add_template<gr_complex>(m, "add_cc");
+}
diff --git a/gr-blocks/python/blocks/bindings/add_const_bb_python.cc b/gr-blocks/python/blocks/bindings/add_const_bb_python.cc
new file mode 100644
index 0000000000..f93ba427c7
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/add_const_bb_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/add_const_bb.h>
+// pydoc.h is automatically generated in the build directory
+#include <add_const_bb_pydoc.h>
+
+void bind_add_const_bb(py::module& m)
+{
+
+ using add_const_bb = ::gr::blocks::add_const_bb;
+
+
+ py::class_<add_const_bb,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<add_const_bb>>(m, "add_const_bb", D(add_const_bb))
+
+ .def(py::init(&add_const_bb::make), py::arg("k"), D(add_const_bb, make))
+
+
+ .def("k", &add_const_bb::k, D(add_const_bb, k))
+
+
+ .def("set_k", &add_const_bb::set_k, py::arg("k"), D(add_const_bb, set_k))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/add_const_cc_python.cc b/gr-blocks/python/blocks/bindings/add_const_cc_python.cc
new file mode 100644
index 0000000000..d03f2119a2
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/add_const_cc_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/add_const_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <add_const_cc_pydoc.h>
+
+void bind_add_const_cc(py::module& m)
+{
+
+ using add_const_cc = ::gr::blocks::add_const_cc;
+
+
+ py::class_<add_const_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<add_const_cc>>(m, "add_const_cc", D(add_const_cc))
+
+ .def(py::init(&add_const_cc::make), py::arg("k"), D(add_const_cc, make))
+
+
+ .def("k", &add_const_cc::k, D(add_const_cc, k))
+
+
+ .def("set_k", &add_const_cc::set_k, py::arg("k"), D(add_const_cc, set_k))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/add_const_ff_python.cc b/gr-blocks/python/blocks/bindings/add_const_ff_python.cc
new file mode 100644
index 0000000000..34f00700cc
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/add_const_ff_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/add_const_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <add_const_ff_pydoc.h>
+
+void bind_add_const_ff(py::module& m)
+{
+
+ using add_const_ff = ::gr::blocks::add_const_ff;
+
+
+ py::class_<add_const_ff,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<add_const_ff>>(m, "add_const_ff", D(add_const_ff))
+
+ .def(py::init(&add_const_ff::make), py::arg("k"), D(add_const_ff, make))
+
+
+ .def("k", &add_const_ff::k, D(add_const_ff, k))
+
+
+ .def("set_k", &add_const_ff::set_k, py::arg("k"), D(add_const_ff, set_k))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/add_const_ii_python.cc b/gr-blocks/python/blocks/bindings/add_const_ii_python.cc
new file mode 100644
index 0000000000..75880f7a33
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/add_const_ii_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/add_const_ii.h>
+// pydoc.h is automatically generated in the build directory
+#include <add_const_ii_pydoc.h>
+
+void bind_add_const_ii(py::module& m)
+{
+
+ using add_const_ii = ::gr::blocks::add_const_ii;
+
+
+ py::class_<add_const_ii,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<add_const_ii>>(m, "add_const_ii", D(add_const_ii))
+
+ .def(py::init(&add_const_ii::make), py::arg("k"), D(add_const_ii, make))
+
+
+ .def("k", &add_const_ii::k, D(add_const_ii, k))
+
+
+ .def("set_k", &add_const_ii::set_k, py::arg("k"), D(add_const_ii, set_k))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/add_const_ss_python.cc b/gr-blocks/python/blocks/bindings/add_const_ss_python.cc
new file mode 100644
index 0000000000..dcda40e3fa
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/add_const_ss_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/add_const_ss.h>
+// pydoc.h is automatically generated in the build directory
+#include <add_const_ss_pydoc.h>
+
+void bind_add_const_ss(py::module& m)
+{
+
+ using add_const_ss = ::gr::blocks::add_const_ss;
+
+
+ py::class_<add_const_ss,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<add_const_ss>>(m, "add_const_ss", D(add_const_ss))
+
+ .def(py::init(&add_const_ss::make), py::arg("k"), D(add_const_ss, make))
+
+
+ .def("k", &add_const_ss::k, D(add_const_ss, k))
+
+
+ .def("set_k", &add_const_ss::set_k, py::arg("k"), D(add_const_ss, set_k))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/add_const_v_python.cc b/gr-blocks/python/blocks/bindings/add_const_v_python.cc
new file mode 100644
index 0000000000..6b0a394663
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/add_const_v_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/add_const_v.h>
+
+template <typename T>
+void bind_add_const_v_template(py::module& m, const char* classname)
+{
+ using add_const_v = gr::blocks::add_const_v<T>;
+
+ py::class_<add_const_v,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<add_const_v>>(m, classname)
+ .def(py::init(&gr::blocks::add_const_v<T>::make));
+}
+
+void bind_add_const_v(py::module& m)
+{
+ bind_add_const_v_template<std::uint8_t>(m, "add_const_vbb");
+ bind_add_const_v_template<std::int16_t>(m, "add_const_vss");
+ bind_add_const_v_template<std::int32_t>(m, "add_const_vii");
+ bind_add_const_v_template<float>(m, "add_const_vff");
+ bind_add_const_v_template<gr_complex>(m, "add_const_vcc");
+}
diff --git a/gr-blocks/python/blocks/bindings/and_blk_python.cc b/gr-blocks/python/blocks/bindings/and_blk_python.cc
new file mode 100644
index 0000000000..ff36290f10
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/and_blk_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/blocks/and_blk.h>
+
+template <typename T>
+void bind_and_blk_template(py::module& m, const char* classname)
+{
+ using and_blk = gr::blocks::and_blk<T>;
+
+ py::class_<and_blk,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<and_blk>>(m, classname)
+ .def(py::init(&gr::blocks::and_blk<T>::make), py::arg("vlen") = 1);
+}
+
+void bind_and_blk(py::module& m)
+{
+ bind_and_blk_template<std::uint8_t>(m, "and_bb");
+ bind_and_blk_template<std::int16_t>(m, "and_ss");
+ bind_and_blk_template<std::int32_t>(m, "and_ii");
+}
diff --git a/gr-blocks/python/blocks/bindings/and_const_python.cc b/gr-blocks/python/blocks/bindings/and_const_python.cc
new file mode 100644
index 0000000000..bc48cb2d07
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/and_const_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/and_const.h>
+
+template <typename T>
+void bind_and_const_template(py::module& m, const char* classname)
+{
+ using and_const = gr::blocks::and_const<T>;
+
+ py::class_<and_const,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<and_const>>(m, classname)
+ .def(py::init(&gr::blocks::and_const<T>::make), py::arg("k"))
+
+ .def("k", &and_const::k)
+ .def("set_k", &and_const::set_k, py::arg("k"));
+}
+
+void bind_and_const(py::module& m)
+{
+ bind_and_const_template<std::uint8_t>(m, "and_const_bb");
+ bind_and_const_template<std::int16_t>(m, "and_const_ss");
+ bind_and_const_template<std::int32_t>(m, "and_const_ii");
+}
diff --git a/gr-blocks/python/blocks/bindings/annotator_1to1_python.cc b/gr-blocks/python/blocks/bindings/annotator_1to1_python.cc
new file mode 100644
index 0000000000..a5164498a5
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/annotator_1to1_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/annotator_1to1.h>
+// pydoc.h is automatically generated in the build directory
+#include <annotator_1to1_pydoc.h>
+
+void bind_annotator_1to1(py::module& m)
+{
+
+ using annotator_1to1 = ::gr::blocks::annotator_1to1;
+
+
+ py::class_<annotator_1to1,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<annotator_1to1>>(m, "annotator_1to1", D(annotator_1to1))
+
+ .def(py::init(&annotator_1to1::make),
+ py::arg("when"),
+ py::arg("sizeof_stream_item"),
+ D(annotator_1to1, make))
+
+
+ .def("data", &annotator_1to1::data, D(annotator_1to1, data))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/annotator_alltoall_python.cc b/gr-blocks/python/blocks/bindings/annotator_alltoall_python.cc
new file mode 100644
index 0000000000..b983a48384
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/annotator_alltoall_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/annotator_alltoall.h>
+// pydoc.h is automatically generated in the build directory
+#include <annotator_alltoall_pydoc.h>
+
+void bind_annotator_alltoall(py::module& m)
+{
+
+ using annotator_alltoall = ::gr::blocks::annotator_alltoall;
+
+
+ py::class_<annotator_alltoall,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<annotator_alltoall>>(
+ m, "annotator_alltoall", D(annotator_alltoall))
+
+ .def(py::init(&annotator_alltoall::make),
+ py::arg("when"),
+ py::arg("sizeof_stream_item"),
+ D(annotator_alltoall, make))
+
+
+ .def("data", &annotator_alltoall::data, D(annotator_alltoall, data))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/annotator_raw_python.cc b/gr-blocks/python/blocks/bindings/annotator_raw_python.cc
new file mode 100644
index 0000000000..26b771e606
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/annotator_raw_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/blocks/annotator_raw.h>
+// pydoc.h is automatically generated in the build directory
+#include <annotator_raw_pydoc.h>
+
+void bind_annotator_raw(py::module& m)
+{
+
+ using annotator_raw = ::gr::blocks::annotator_raw;
+
+
+ py::class_<annotator_raw,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<annotator_raw>>(m, "annotator_raw", D(annotator_raw))
+
+ .def(py::init(&annotator_raw::make),
+ py::arg("sizeof_stream_item"),
+ D(annotator_raw, make))
+
+
+ .def("add_tag",
+ &annotator_raw::add_tag,
+ py::arg("offset"),
+ py::arg("key"),
+ py::arg("val"),
+ D(annotator_raw, add_tag))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/argmax_python.cc b/gr-blocks/python/blocks/bindings/argmax_python.cc
new file mode 100644
index 0000000000..8e0f3654a5
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/argmax_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/blocks/argmax.h>
+
+template <typename T>
+void bind_argmax_template(py::module& m, const char* classname)
+{
+ using argmax = gr::blocks::argmax<T>;
+
+ py::class_<argmax,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<argmax>>(m, classname)
+ .def(py::init(&gr::blocks::argmax<T>::make));
+}
+
+void bind_argmax(py::module& m)
+{
+ bind_argmax_template<std::int16_t>(m, "argmax_ss");
+ bind_argmax_template<std::int32_t>(m, "argmax_is");
+ bind_argmax_template<float>(m, "argmax_fs");
+}
diff --git a/gr-blocks/python/blocks/bindings/burst_tagger_python.cc b/gr-blocks/python/blocks/bindings/burst_tagger_python.cc
new file mode 100644
index 0000000000..788029dbdd
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/burst_tagger_python.cc
@@ -0,0 +1,51 @@
+/*
+ * 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/blocks/burst_tagger.h>
+// pydoc.h is automatically generated in the build directory
+#include <burst_tagger_pydoc.h>
+
+void bind_burst_tagger(py::module& m)
+{
+
+ using burst_tagger = ::gr::blocks::burst_tagger;
+
+
+ py::class_<burst_tagger,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<burst_tagger>>(m, "burst_tagger", D(burst_tagger))
+
+ .def(py::init(&burst_tagger::make), py::arg("itemsize"), D(burst_tagger, make))
+
+
+ .def("set_true_tag",
+ &burst_tagger::set_true_tag,
+ py::arg("key"),
+ py::arg("value"),
+ D(burst_tagger, set_true_tag))
+
+
+ .def("set_false_tag",
+ &burst_tagger::set_false_tag,
+ py::arg("key"),
+ py::arg("value"),
+ D(burst_tagger, set_false_tag))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/char_to_float_python.cc b/gr-blocks/python/blocks/bindings/char_to_float_python.cc
new file mode 100644
index 0000000000..f1a82ecbd5
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/char_to_float_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/blocks/char_to_float.h>
+// pydoc.h is automatically generated in the build directory
+#include <char_to_float_pydoc.h>
+
+void bind_char_to_float(py::module& m)
+{
+
+ using char_to_float = ::gr::blocks::char_to_float;
+
+
+ py::class_<char_to_float,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<char_to_float>>(m, "char_to_float", D(char_to_float))
+
+ .def(py::init(&char_to_float::make),
+ py::arg("vlen") = 1,
+ py::arg("scale") = 1.,
+ D(char_to_float, make))
+
+
+ .def("scale", &char_to_float::scale, D(char_to_float, scale))
+
+
+ .def("set_scale",
+ &char_to_float::set_scale,
+ py::arg("scale"),
+ D(char_to_float, set_scale))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/char_to_short_python.cc b/gr-blocks/python/blocks/bindings/char_to_short_python.cc
new file mode 100644
index 0000000000..a0b92d418d
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/char_to_short_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/blocks/char_to_short.h>
+// pydoc.h is automatically generated in the build directory
+#include <char_to_short_pydoc.h>
+
+void bind_char_to_short(py::module& m)
+{
+
+ using char_to_short = ::gr::blocks::char_to_short;
+
+
+ py::class_<char_to_short,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<char_to_short>>(m, "char_to_short", D(char_to_short))
+
+ .def(py::init(&char_to_short::make), py::arg("vlen") = 1, D(char_to_short, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/check_lfsr_32k_s_python.cc b/gr-blocks/python/blocks/bindings/check_lfsr_32k_s_python.cc
new file mode 100644
index 0000000000..0ae53a4179
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/check_lfsr_32k_s_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/blocks/check_lfsr_32k_s.h>
+// pydoc.h is automatically generated in the build directory
+#include <check_lfsr_32k_s_pydoc.h>
+
+void bind_check_lfsr_32k_s(py::module& m)
+{
+
+ using check_lfsr_32k_s = ::gr::blocks::check_lfsr_32k_s;
+
+
+ py::class_<check_lfsr_32k_s,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<check_lfsr_32k_s>>(
+ m, "check_lfsr_32k_s", D(check_lfsr_32k_s))
+
+ .def(py::init(&check_lfsr_32k_s::make), D(check_lfsr_32k_s, make))
+
+
+ .def("ntotal", &check_lfsr_32k_s::ntotal, D(check_lfsr_32k_s, ntotal))
+
+
+ .def("nright", &check_lfsr_32k_s::nright, D(check_lfsr_32k_s, nright))
+
+
+ .def("runlength", &check_lfsr_32k_s::runlength, D(check_lfsr_32k_s, runlength))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/complex_to_arg_python.cc b/gr-blocks/python/blocks/bindings/complex_to_arg_python.cc
new file mode 100644
index 0000000000..4cd5c77414
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/complex_to_arg_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/complex_to_arg.h>
+// pydoc.h is automatically generated in the build directory
+#include <complex_to_arg_pydoc.h>
+
+void bind_complex_to_arg(py::module& m)
+{
+
+ using complex_to_arg = ::gr::blocks::complex_to_arg;
+
+
+ py::class_<complex_to_arg,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<complex_to_arg>>(m, "complex_to_arg", D(complex_to_arg))
+
+ .def(
+ py::init(&complex_to_arg::make), py::arg("vlen") = 1, D(complex_to_arg, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/complex_to_float_python.cc b/gr-blocks/python/blocks/bindings/complex_to_float_python.cc
new file mode 100644
index 0000000000..1e9d1bc34e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/complex_to_float_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/complex_to_float.h>
+// pydoc.h is automatically generated in the build directory
+#include <complex_to_float_pydoc.h>
+
+void bind_complex_to_float(py::module& m)
+{
+
+ using complex_to_float = ::gr::blocks::complex_to_float;
+
+
+ py::class_<complex_to_float,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<complex_to_float>>(
+ m, "complex_to_float", D(complex_to_float))
+
+ .def(py::init(&complex_to_float::make),
+ py::arg("vlen") = 1,
+ D(complex_to_float, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/complex_to_imag_python.cc b/gr-blocks/python/blocks/bindings/complex_to_imag_python.cc
new file mode 100644
index 0000000000..df27119159
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/complex_to_imag_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/complex_to_imag.h>
+// pydoc.h is automatically generated in the build directory
+#include <complex_to_imag_pydoc.h>
+
+void bind_complex_to_imag(py::module& m)
+{
+
+ using complex_to_imag = ::gr::blocks::complex_to_imag;
+
+
+ py::class_<complex_to_imag,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<complex_to_imag>>(m, "complex_to_imag", D(complex_to_imag))
+
+ .def(py::init(&complex_to_imag::make),
+ py::arg("vlen") = 1,
+ D(complex_to_imag, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/complex_to_interleaved_char_python.cc b/gr-blocks/python/blocks/bindings/complex_to_interleaved_char_python.cc
new file mode 100644
index 0000000000..6d6e40cab0
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/complex_to_interleaved_char_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/blocks/complex_to_interleaved_char.h>
+// pydoc.h is automatically generated in the build directory
+#include <complex_to_interleaved_char_pydoc.h>
+
+void bind_complex_to_interleaved_char(py::module& m)
+{
+
+ using complex_to_interleaved_char = ::gr::blocks::complex_to_interleaved_char;
+
+
+ py::class_<complex_to_interleaved_char,
+ gr::sync_interpolator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<complex_to_interleaved_char>>(
+ m, "complex_to_interleaved_char", D(complex_to_interleaved_char))
+
+ .def(py::init(&complex_to_interleaved_char::make),
+ py::arg("vector") = false,
+ py::arg("scale_factor") = 1.F,
+ D(complex_to_interleaved_char, make))
+
+
+ .def("set_scale_factor",
+ &complex_to_interleaved_char::set_scale_factor,
+ py::arg("new_value"),
+ D(complex_to_interleaved_char, set_scale_factor))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/complex_to_interleaved_short_python.cc b/gr-blocks/python/blocks/bindings/complex_to_interleaved_short_python.cc
new file mode 100644
index 0000000000..c8cf8198a7
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/complex_to_interleaved_short_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/blocks/complex_to_interleaved_short.h>
+// pydoc.h is automatically generated in the build directory
+#include <complex_to_interleaved_short_pydoc.h>
+
+void bind_complex_to_interleaved_short(py::module& m)
+{
+
+ using complex_to_interleaved_short = ::gr::blocks::complex_to_interleaved_short;
+
+
+ py::class_<complex_to_interleaved_short,
+ gr::sync_interpolator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<complex_to_interleaved_short>>(
+ m, "complex_to_interleaved_short", D(complex_to_interleaved_short))
+
+ .def(py::init(&complex_to_interleaved_short::make),
+ py::arg("vector") = false,
+ py::arg("scale_factor") = 1.F,
+ D(complex_to_interleaved_short, make))
+
+
+ .def("set_scale_factor",
+ &complex_to_interleaved_short::set_scale_factor,
+ py::arg("new_value"),
+ D(complex_to_interleaved_short, set_scale_factor))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/complex_to_mag_python.cc b/gr-blocks/python/blocks/bindings/complex_to_mag_python.cc
new file mode 100644
index 0000000000..0a31083e2f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/complex_to_mag_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/complex_to_mag.h>
+// pydoc.h is automatically generated in the build directory
+#include <complex_to_mag_pydoc.h>
+
+void bind_complex_to_mag(py::module& m)
+{
+
+ using complex_to_mag = ::gr::blocks::complex_to_mag;
+
+
+ py::class_<complex_to_mag,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<complex_to_mag>>(m, "complex_to_mag", D(complex_to_mag))
+
+ .def(
+ py::init(&complex_to_mag::make), py::arg("vlen") = 1, D(complex_to_mag, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/complex_to_mag_squared_python.cc b/gr-blocks/python/blocks/bindings/complex_to_mag_squared_python.cc
new file mode 100644
index 0000000000..33095ac594
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/complex_to_mag_squared_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/complex_to_mag_squared.h>
+// pydoc.h is automatically generated in the build directory
+#include <complex_to_mag_squared_pydoc.h>
+
+void bind_complex_to_mag_squared(py::module& m)
+{
+
+ using complex_to_mag_squared = ::gr::blocks::complex_to_mag_squared;
+
+
+ py::class_<complex_to_mag_squared,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<complex_to_mag_squared>>(
+ m, "complex_to_mag_squared", D(complex_to_mag_squared))
+
+ .def(py::init(&complex_to_mag_squared::make),
+ py::arg("vlen") = 1,
+ D(complex_to_mag_squared, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/complex_to_magphase_python.cc b/gr-blocks/python/blocks/bindings/complex_to_magphase_python.cc
new file mode 100644
index 0000000000..7327952357
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/complex_to_magphase_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/complex_to_magphase.h>
+// pydoc.h is automatically generated in the build directory
+#include <complex_to_magphase_pydoc.h>
+
+void bind_complex_to_magphase(py::module& m)
+{
+
+ using complex_to_magphase = ::gr::blocks::complex_to_magphase;
+
+
+ py::class_<complex_to_magphase,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<complex_to_magphase>>(
+ m, "complex_to_magphase", D(complex_to_magphase))
+
+ .def(py::init(&complex_to_magphase::make),
+ py::arg("vlen") = 1,
+ D(complex_to_magphase, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/complex_to_real_python.cc b/gr-blocks/python/blocks/bindings/complex_to_real_python.cc
new file mode 100644
index 0000000000..9e59c2a88a
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/complex_to_real_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/complex_to_real.h>
+// pydoc.h is automatically generated in the build directory
+#include <complex_to_real_pydoc.h>
+
+void bind_complex_to_real(py::module& m)
+{
+
+ using complex_to_real = ::gr::blocks::complex_to_real;
+
+
+ py::class_<complex_to_real,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<complex_to_real>>(m, "complex_to_real", D(complex_to_real))
+
+ .def(py::init(&complex_to_real::make),
+ py::arg("vlen") = 1,
+ D(complex_to_real, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/conjugate_cc_python.cc b/gr-blocks/python/blocks/bindings/conjugate_cc_python.cc
new file mode 100644
index 0000000000..0c912533b0
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/conjugate_cc_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/blocks/conjugate_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <conjugate_cc_pydoc.h>
+
+void bind_conjugate_cc(py::module& m)
+{
+
+ using conjugate_cc = ::gr::blocks::conjugate_cc;
+
+
+ py::class_<conjugate_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<conjugate_cc>>(m, "conjugate_cc", D(conjugate_cc))
+
+ .def(py::init(&conjugate_cc::make), D(conjugate_cc, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/control_loop_python.cc b/gr-blocks/python/blocks/bindings/control_loop_python.cc
new file mode 100644
index 0000000000..c9eef9c75d
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/control_loop_python.cc
@@ -0,0 +1,139 @@
+/*
+ * 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/blocks/control_loop.h>
+// pydoc.h is automatically generated in the build directory
+#include <control_loop_pydoc.h>
+
+void bind_control_loop(py::module& m)
+{
+
+ using control_loop = ::gr::blocks::control_loop;
+
+
+ py::class_<control_loop, std::shared_ptr<control_loop>>(
+ m, "control_loop", D(control_loop))
+
+ .def(py::init<>(), D(control_loop, control_loop, 0))
+ .def(py::init<float, float, float>(),
+ py::arg("loop_bw"),
+ py::arg("max_freq"),
+ py::arg("min_freq"),
+ D(control_loop, control_loop, 1))
+ .def(py::init<gr::blocks::control_loop const&>(),
+ py::arg("arg0"),
+ D(control_loop, control_loop, 2))
+
+
+ .def("update_gains", &control_loop::update_gains, D(control_loop, update_gains))
+
+
+ .def("advance_loop",
+ &control_loop::advance_loop,
+ py::arg("error"),
+ D(control_loop, advance_loop))
+
+
+ .def("phase_wrap", &control_loop::phase_wrap, D(control_loop, phase_wrap))
+
+
+ .def("frequency_limit",
+ &control_loop::frequency_limit,
+ D(control_loop, frequency_limit))
+
+
+ .def("set_loop_bandwidth",
+ &control_loop::set_loop_bandwidth,
+ py::arg("bw"),
+ D(control_loop, set_loop_bandwidth))
+
+
+ .def("set_damping_factor",
+ &control_loop::set_damping_factor,
+ py::arg("df"),
+ D(control_loop, set_damping_factor))
+
+
+ .def("set_alpha",
+ &control_loop::set_alpha,
+ py::arg("alpha"),
+ D(control_loop, set_alpha))
+
+
+ .def("set_beta",
+ &control_loop::set_beta,
+ py::arg("beta"),
+ D(control_loop, set_beta))
+
+
+ .def("set_frequency",
+ &control_loop::set_frequency,
+ py::arg("freq"),
+ D(control_loop, set_frequency))
+
+
+ .def("set_phase",
+ &control_loop::set_phase,
+ py::arg("phase"),
+ D(control_loop, set_phase))
+
+
+ .def("set_max_freq",
+ &control_loop::set_max_freq,
+ py::arg("freq"),
+ D(control_loop, set_max_freq))
+
+
+ .def("set_min_freq",
+ &control_loop::set_min_freq,
+ py::arg("freq"),
+ D(control_loop, set_min_freq))
+
+
+ .def("get_loop_bandwidth",
+ &control_loop::get_loop_bandwidth,
+ D(control_loop, get_loop_bandwidth))
+
+
+ .def("get_damping_factor",
+ &control_loop::get_damping_factor,
+ D(control_loop, get_damping_factor))
+
+
+ .def("get_alpha", &control_loop::get_alpha, D(control_loop, get_alpha))
+
+
+ .def("get_beta", &control_loop::get_beta, D(control_loop, get_beta))
+
+
+ .def(
+ "get_frequency", &control_loop::get_frequency, D(control_loop, get_frequency))
+
+
+ .def("get_phase", &control_loop::get_phase, D(control_loop, get_phase))
+
+
+ .def("get_max_freq", &control_loop::get_max_freq, D(control_loop, get_max_freq))
+
+
+ .def("get_min_freq", &control_loop::get_min_freq, D(control_loop, get_min_freq))
+
+ ;
+
+
+ m.def("tanhf_lut", &::gr::blocks::tanhf_lut, py::arg("x"), D(tanhf_lut));
+}
diff --git a/gr-blocks/python/blocks/bindings/copy_python.cc b/gr-blocks/python/blocks/bindings/copy_python.cc
new file mode 100644
index 0000000000..1bfa412b04
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/copy_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/copy.h>
+// pydoc.h is automatically generated in the build directory
+#include <copy_pydoc.h>
+
+void bind_copy(py::module& m)
+{
+
+ using copy = ::gr::blocks::copy;
+
+
+ py::class_<copy, gr::block, gr::basic_block, std::shared_ptr<copy>>(
+ m, "copy", D(copy))
+
+ .def(py::init(&copy::make), py::arg("itemsize"), D(copy, make))
+
+
+ .def("set_enabled", &copy::set_enabled, py::arg("enable"), D(copy, set_enabled))
+
+
+ .def("enabled", &copy::enabled, D(copy, enabled))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/correctiq_auto_python.cc b/gr-blocks/python/blocks/bindings/correctiq_auto_python.cc
new file mode 100644
index 0000000000..5dc8f748c2
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/correctiq_auto_python.cc
@@ -0,0 +1,61 @@
+/*
+ * 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/blocks/correctiq_auto.h>
+// pydoc.h is automatically generated in the build directory
+#include <correctiq_auto_pydoc.h>
+
+void bind_correctiq_auto(py::module& m)
+{
+
+ using correctiq_auto = ::gr::blocks::correctiq_auto;
+
+
+ py::class_<correctiq_auto,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<correctiq_auto>>(m, "correctiq_auto", D(correctiq_auto))
+
+ .def(py::init(&correctiq_auto::make),
+ py::arg("samp_rate"),
+ py::arg("freq"),
+ py::arg("gain"),
+ py::arg("sync_window"),
+ D(correctiq_auto, make))
+
+
+ .def("get_freq", &correctiq_auto::get_freq, D(correctiq_auto, get_freq))
+
+
+ .def("get_gain", &correctiq_auto::get_gain, D(correctiq_auto, get_gain))
+
+
+ .def("set_freq",
+ &correctiq_auto::set_freq,
+ py::arg("newValue"),
+ D(correctiq_auto, set_freq))
+
+
+ .def("set_gain",
+ &correctiq_auto::set_gain,
+ py::arg("newValue"),
+ D(correctiq_auto, set_gain))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/correctiq_man_python.cc b/gr-blocks/python/blocks/bindings/correctiq_man_python.cc
new file mode 100644
index 0000000000..61c289565a
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/correctiq_man_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/blocks/correctiq_man.h>
+// pydoc.h is automatically generated in the build directory
+#include <correctiq_man_pydoc.h>
+
+void bind_correctiq_man(py::module& m)
+{
+
+ using correctiq_man = ::gr::blocks::correctiq_man;
+
+
+ py::class_<correctiq_man,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<correctiq_man>>(m, "correctiq_man", D(correctiq_man))
+
+ .def(py::init(&correctiq_man::make),
+ py::arg("real"),
+ py::arg("imag"),
+ D(correctiq_man, make))
+
+
+ .def("get_real", &correctiq_man::get_real, D(correctiq_man, get_real))
+
+
+ .def("get_imag", &correctiq_man::get_imag, D(correctiq_man, get_imag))
+
+
+ .def("set_real",
+ &correctiq_man::set_real,
+ py::arg("newValue"),
+ D(correctiq_man, set_real))
+
+
+ .def("set_imag",
+ &correctiq_man::set_imag,
+ py::arg("newValue"),
+ D(correctiq_man, set_imag))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/correctiq_python.cc b/gr-blocks/python/blocks/bindings/correctiq_python.cc
new file mode 100644
index 0000000000..7deb9bd027
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/correctiq_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/blocks/correctiq.h>
+// pydoc.h is automatically generated in the build directory
+#include <correctiq_pydoc.h>
+
+void bind_correctiq(py::module& m)
+{
+
+ using correctiq = ::gr::blocks::correctiq;
+
+
+ py::class_<correctiq,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<correctiq>>(m, "correctiq", D(correctiq))
+
+ .def(py::init(&correctiq::make), D(correctiq, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/correctiq_swapiq_python.cc b/gr-blocks/python/blocks/bindings/correctiq_swapiq_python.cc
new file mode 100644
index 0000000000..214e9aa31c
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/correctiq_swapiq_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/correctiq_swapiq.h>
+// pydoc.h is automatically generated in the build directory
+#include <correctiq_swapiq_pydoc.h>
+
+void bind_correctiq_swapiq(py::module& m)
+{
+
+ using swap_iq = ::gr::blocks::swap_iq;
+
+
+ py::class_<swap_iq,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<swap_iq>>(m, "swap_iq", D(swap_iq))
+
+ .def(py::init(&swap_iq::make),
+ py::arg("datatype"),
+ py::arg("datasize"),
+ D(swap_iq, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/count_bits_python.cc b/gr-blocks/python/blocks/bindings/count_bits_python.cc
new file mode 100644
index 0000000000..c8a57ecd6e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/count_bits_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/count_bits.h>
+// pydoc.h is automatically generated in the build directory
+#include <count_bits_pydoc.h>
+
+void bind_count_bits(py::module& m)
+{
+
+
+ m.def("count_bits8", &::gr::blocks::count_bits8, py::arg("x"), D(count_bits8));
+
+
+ m.def("count_bits16", &::gr::blocks::count_bits16, py::arg("x"), D(count_bits16));
+
+
+ m.def("count_bits32", &::gr::blocks::count_bits32, py::arg("x"), D(count_bits32));
+
+
+ m.def("count_bits64", &::gr::blocks::count_bits64, py::arg("x"), D(count_bits64));
+}
diff --git a/gr-blocks/python/blocks/bindings/ctrlport_probe2_b_python.cc b/gr-blocks/python/blocks/bindings/ctrlport_probe2_b_python.cc
new file mode 100644
index 0000000000..0950ab96d2
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/ctrlport_probe2_b_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/blocks/ctrlport_probe2_b.h>
+// pydoc.h is automatically generated in the build directory
+#include <ctrlport_probe2_b_pydoc.h>
+
+void bind_ctrlport_probe2_b(py::module& m)
+{
+
+ using ctrlport_probe2_b = ::gr::blocks::ctrlport_probe2_b;
+
+
+ py::class_<ctrlport_probe2_b,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<ctrlport_probe2_b>>(
+ m, "ctrlport_probe2_b", D(ctrlport_probe2_b))
+
+ .def(py::init(&ctrlport_probe2_b::make),
+ py::arg("id"),
+ py::arg("desc"),
+ py::arg("len"),
+ py::arg("disp_mask"),
+ D(ctrlport_probe2_b, make))
+
+
+ .def("get", &ctrlport_probe2_b::get, D(ctrlport_probe2_b, get))
+
+
+ .def("set_length",
+ &ctrlport_probe2_b::set_length,
+ py::arg("len"),
+ D(ctrlport_probe2_b, set_length))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/ctrlport_probe2_c_python.cc b/gr-blocks/python/blocks/bindings/ctrlport_probe2_c_python.cc
new file mode 100644
index 0000000000..320c86ad51
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/ctrlport_probe2_c_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/blocks/ctrlport_probe2_c.h>
+// pydoc.h is automatically generated in the build directory
+#include <ctrlport_probe2_c_pydoc.h>
+
+void bind_ctrlport_probe2_c(py::module& m)
+{
+
+ using ctrlport_probe2_c = ::gr::blocks::ctrlport_probe2_c;
+
+
+ py::class_<ctrlport_probe2_c,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<ctrlport_probe2_c>>(
+ m, "ctrlport_probe2_c", D(ctrlport_probe2_c))
+
+ .def(py::init(&ctrlport_probe2_c::make),
+ py::arg("id"),
+ py::arg("desc"),
+ py::arg("len"),
+ py::arg("disp_mask"),
+ D(ctrlport_probe2_c, make))
+
+
+ .def("get", &ctrlport_probe2_c::get, D(ctrlport_probe2_c, get))
+
+
+ .def("set_length",
+ &ctrlport_probe2_c::set_length,
+ py::arg("len"),
+ D(ctrlport_probe2_c, set_length))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/ctrlport_probe2_f_python.cc b/gr-blocks/python/blocks/bindings/ctrlport_probe2_f_python.cc
new file mode 100644
index 0000000000..6b87268dd5
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/ctrlport_probe2_f_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/blocks/ctrlport_probe2_f.h>
+// pydoc.h is automatically generated in the build directory
+#include <ctrlport_probe2_f_pydoc.h>
+
+void bind_ctrlport_probe2_f(py::module& m)
+{
+
+ using ctrlport_probe2_f = ::gr::blocks::ctrlport_probe2_f;
+
+
+ py::class_<ctrlport_probe2_f,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<ctrlport_probe2_f>>(
+ m, "ctrlport_probe2_f", D(ctrlport_probe2_f))
+
+ .def(py::init(&ctrlport_probe2_f::make),
+ py::arg("id"),
+ py::arg("desc"),
+ py::arg("len"),
+ py::arg("disp_mask"),
+ D(ctrlport_probe2_f, make))
+
+
+ .def("get", &ctrlport_probe2_f::get, D(ctrlport_probe2_f, get))
+
+
+ .def("set_length",
+ &ctrlport_probe2_f::set_length,
+ py::arg("len"),
+ D(ctrlport_probe2_f, set_length))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/ctrlport_probe2_i_python.cc b/gr-blocks/python/blocks/bindings/ctrlport_probe2_i_python.cc
new file mode 100644
index 0000000000..d6966c8783
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/ctrlport_probe2_i_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/blocks/ctrlport_probe2_i.h>
+// pydoc.h is automatically generated in the build directory
+#include <ctrlport_probe2_i_pydoc.h>
+
+void bind_ctrlport_probe2_i(py::module& m)
+{
+
+ using ctrlport_probe2_i = ::gr::blocks::ctrlport_probe2_i;
+
+
+ py::class_<ctrlport_probe2_i,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<ctrlport_probe2_i>>(
+ m, "ctrlport_probe2_i", D(ctrlport_probe2_i))
+
+ .def(py::init(&ctrlport_probe2_i::make),
+ py::arg("id"),
+ py::arg("desc"),
+ py::arg("len"),
+ py::arg("disp_mask"),
+ D(ctrlport_probe2_i, make))
+
+
+ .def("get", &ctrlport_probe2_i::get, D(ctrlport_probe2_i, get))
+
+
+ .def("set_length",
+ &ctrlport_probe2_i::set_length,
+ py::arg("len"),
+ D(ctrlport_probe2_i, set_length))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/ctrlport_probe2_s_python.cc b/gr-blocks/python/blocks/bindings/ctrlport_probe2_s_python.cc
new file mode 100644
index 0000000000..c9d61e4791
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/ctrlport_probe2_s_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/blocks/ctrlport_probe2_s.h>
+// pydoc.h is automatically generated in the build directory
+#include <ctrlport_probe2_s_pydoc.h>
+
+void bind_ctrlport_probe2_s(py::module& m)
+{
+
+ using ctrlport_probe2_s = ::gr::blocks::ctrlport_probe2_s;
+
+
+ py::class_<ctrlport_probe2_s,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<ctrlport_probe2_s>>(
+ m, "ctrlport_probe2_s", D(ctrlport_probe2_s))
+
+ .def(py::init(&ctrlport_probe2_s::make),
+ py::arg("id"),
+ py::arg("desc"),
+ py::arg("len"),
+ py::arg("disp_mask"),
+ D(ctrlport_probe2_s, make))
+
+
+ .def("get", &ctrlport_probe2_s::get, D(ctrlport_probe2_s, get))
+
+
+ .def("set_length",
+ &ctrlport_probe2_s::set_length,
+ py::arg("len"),
+ D(ctrlport_probe2_s, set_length))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/ctrlport_probe_c_python.cc b/gr-blocks/python/blocks/bindings/ctrlport_probe_c_python.cc
new file mode 100644
index 0000000000..fafeb28167
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/ctrlport_probe_c_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/ctrlport_probe_c.h>
+// pydoc.h is automatically generated in the build directory
+#include <ctrlport_probe_c_pydoc.h>
+
+void bind_ctrlport_probe_c(py::module& m)
+{
+
+ using ctrlport_probe_c = ::gr::blocks::ctrlport_probe_c;
+
+
+ py::class_<ctrlport_probe_c,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<ctrlport_probe_c>>(
+ m, "ctrlport_probe_c", D(ctrlport_probe_c))
+
+ .def(py::init(&ctrlport_probe_c::make),
+ py::arg("id"),
+ py::arg("desc"),
+ D(ctrlport_probe_c, make))
+
+
+ .def("get", &ctrlport_probe_c::get, D(ctrlport_probe_c, get))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/deinterleave_python.cc b/gr-blocks/python/blocks/bindings/deinterleave_python.cc
new file mode 100644
index 0000000000..b98bca674e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/deinterleave_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/blocks/deinterleave.h>
+// pydoc.h is automatically generated in the build directory
+#include <deinterleave_pydoc.h>
+
+void bind_deinterleave(py::module& m)
+{
+
+ using deinterleave = ::gr::blocks::deinterleave;
+
+
+ py::class_<deinterleave, gr::block, gr::basic_block, std::shared_ptr<deinterleave>>(
+ m, "deinterleave", D(deinterleave))
+
+ .def(py::init(&deinterleave::make),
+ py::arg("itemsize"),
+ py::arg("blocksize") = 1,
+ D(deinterleave, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/delay_python.cc b/gr-blocks/python/blocks/bindings/delay_python.cc
new file mode 100644
index 0000000000..35074ce053
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/delay_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/delay.h>
+// pydoc.h is automatically generated in the build directory
+#include <delay_pydoc.h>
+
+void bind_delay(py::module& m)
+{
+
+ using delay = ::gr::blocks::delay;
+
+
+ py::class_<delay, gr::block, gr::basic_block, std::shared_ptr<delay>>(
+ m, "delay", D(delay))
+
+ .def(
+ py::init(&delay::make), py::arg("itemsize"), py::arg("delay"), D(delay, make))
+
+
+ .def("dly", &delay::dly, D(delay, dly))
+
+
+ .def("set_dly", &delay::set_dly, py::arg("d"), D(delay, set_dly))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/divide_python.cc b/gr-blocks/python/blocks/bindings/divide_python.cc
new file mode 100644
index 0000000000..5d725f670d
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/divide_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/divide.h>
+
+template <typename T>
+void bind_divide_template(py::module& m, const char* classname)
+{
+ using divide = gr::blocks::divide<T>;
+
+ py::class_<divide,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<divide>>(m, classname)
+ .def(py::init(&gr::blocks::divide<T>::make), py::arg("vlen") = 1);
+}
+
+void bind_divide(py::module& m)
+{
+ bind_divide_template<std::int16_t>(m, "divide_ss");
+ bind_divide_template<std::int32_t>(m, "divide_ii");
+ bind_divide_template<float>(m, "divide_ff");
+ bind_divide_template<gr_complex>(m, "divide_cc");
+}
diff --git a/gr-blocks/python/blocks/bindings/docstrings/abs_blk_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/abs_blk_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/abs_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, blocks, __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-blocks/python/blocks/bindings/docstrings/add_blk_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/add_blk_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/add_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, blocks, __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-blocks/python/blocks/bindings/docstrings/add_const_bb_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/add_const_bb_pydoc_template.h
new file mode 100644
index 0000000000..5f0b4c7c00
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/add_const_bb_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, blocks, __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_blocks_add_const_bb = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_bb_add_const_bb_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_bb_add_const_bb_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_bb_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_bb_k = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_bb_set_k = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/add_const_cc_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/add_const_cc_pydoc_template.h
new file mode 100644
index 0000000000..bd140b32d1
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/add_const_cc_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, blocks, __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_blocks_add_const_cc = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_cc_add_const_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_cc_add_const_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_cc_k = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_cc_set_k = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/add_const_ff_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/add_const_ff_pydoc_template.h
new file mode 100644
index 0000000000..1239dc5b8d
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/add_const_ff_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, blocks, __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_blocks_add_const_ff = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ff_add_const_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ff_add_const_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ff_k = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ff_set_k = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/add_const_ii_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/add_const_ii_pydoc_template.h
new file mode 100644
index 0000000000..975f17e8ae
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/add_const_ii_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, blocks, __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_blocks_add_const_ii = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ii_add_const_ii_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ii_add_const_ii_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ii_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ii_k = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ii_set_k = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/add_const_ss_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/add_const_ss_pydoc_template.h
new file mode 100644
index 0000000000..a3fba1c7ae
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/add_const_ss_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, blocks, __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_blocks_add_const_ss = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ss_add_const_ss_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ss_add_const_ss_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ss_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ss_k = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_add_const_ss_set_k = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/add_const_v_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/add_const_v_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/add_const_v_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, blocks, __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-blocks/python/blocks/bindings/docstrings/and_blk_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/and_blk_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/and_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, blocks, __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-blocks/python/blocks/bindings/docstrings/and_const_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/and_const_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/and_const_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, blocks, __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-blocks/python/blocks/bindings/docstrings/annotator_1to1_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/annotator_1to1_pydoc_template.h
new file mode 100644
index 0000000000..76afa1e667
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/annotator_1to1_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, blocks, __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_blocks_annotator_1to1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_1to1_annotator_1to1_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_1to1_annotator_1to1_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_1to1_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_1to1_data = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/annotator_alltoall_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/annotator_alltoall_pydoc_template.h
new file mode 100644
index 0000000000..67323589ad
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/annotator_alltoall_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, blocks, __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_blocks_annotator_alltoall = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_alltoall_annotator_alltoall_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_alltoall_annotator_alltoall_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_alltoall_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_alltoall_data = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/annotator_raw_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/annotator_raw_pydoc_template.h
new file mode 100644
index 0000000000..5ed1a6e1c3
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/annotator_raw_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, blocks, __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_blocks_annotator_raw = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_raw_annotator_raw_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_raw_annotator_raw_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_raw_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_annotator_raw_add_tag = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/argmax_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/argmax_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/argmax_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, blocks, __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-blocks/python/blocks/bindings/docstrings/burst_tagger_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/burst_tagger_pydoc_template.h
new file mode 100644
index 0000000000..ba73b455ba
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/burst_tagger_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, blocks, __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_blocks_burst_tagger = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_burst_tagger_burst_tagger_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_burst_tagger_burst_tagger_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_burst_tagger_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_burst_tagger_set_true_tag = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_burst_tagger_set_false_tag = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/char_to_float_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/char_to_float_pydoc_template.h
new file mode 100644
index 0000000000..949fe3de2b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/char_to_float_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, blocks, __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_blocks_char_to_float = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_char_to_float_char_to_float_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_char_to_float_char_to_float_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_char_to_float_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_char_to_float_scale = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_char_to_float_set_scale = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/char_to_short_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/char_to_short_pydoc_template.h
new file mode 100644
index 0000000000..f227bcfa20
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/char_to_short_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, blocks, __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_blocks_char_to_short = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_char_to_short_char_to_short = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_char_to_short_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/check_lfsr_32k_s_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/check_lfsr_32k_s_pydoc_template.h
new file mode 100644
index 0000000000..41658cfbc8
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/check_lfsr_32k_s_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, blocks, __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_blocks_check_lfsr_32k_s = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_check_lfsr_32k_s_check_lfsr_32k_s_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_check_lfsr_32k_s_check_lfsr_32k_s_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_check_lfsr_32k_s_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_check_lfsr_32k_s_ntotal = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_check_lfsr_32k_s_nright = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_check_lfsr_32k_s_runlength = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/complex_to_arg_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/complex_to_arg_pydoc_template.h
new file mode 100644
index 0000000000..fddbfc32f6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/complex_to_arg_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, blocks, __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_blocks_complex_to_arg = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_arg_complex_to_arg = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_arg_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/complex_to_float_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/complex_to_float_pydoc_template.h
new file mode 100644
index 0000000000..dbf312b2f1
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/complex_to_float_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, blocks, __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_blocks_complex_to_float = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_float_complex_to_float = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_float_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/complex_to_imag_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/complex_to_imag_pydoc_template.h
new file mode 100644
index 0000000000..9af4ff7c35
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/complex_to_imag_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, blocks, __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_blocks_complex_to_imag = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_imag_complex_to_imag = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_imag_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/complex_to_interleaved_char_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/complex_to_interleaved_char_pydoc_template.h
new file mode 100644
index 0000000000..1eadcf199f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/complex_to_interleaved_char_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, blocks, __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_blocks_complex_to_interleaved_char = R"doc()doc";
+
+
+static const char*
+ __doc_gr_blocks_complex_to_interleaved_char_complex_to_interleaved_char_0 =
+ R"doc()doc";
+
+
+static const char*
+ __doc_gr_blocks_complex_to_interleaved_char_complex_to_interleaved_char_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_interleaved_char_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_interleaved_char_set_scale_factor =
+ R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/complex_to_interleaved_short_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/complex_to_interleaved_short_pydoc_template.h
new file mode 100644
index 0000000000..777f86b0d2
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/complex_to_interleaved_short_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, blocks, __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_blocks_complex_to_interleaved_short = R"doc()doc";
+
+
+static const char*
+ __doc_gr_blocks_complex_to_interleaved_short_complex_to_interleaved_short_0 =
+ R"doc()doc";
+
+
+static const char*
+ __doc_gr_blocks_complex_to_interleaved_short_complex_to_interleaved_short_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_interleaved_short_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_interleaved_short_set_scale_factor =
+ R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/complex_to_mag_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/complex_to_mag_pydoc_template.h
new file mode 100644
index 0000000000..e9676d7ed2
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/complex_to_mag_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, blocks, __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_blocks_complex_to_mag = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_mag_complex_to_mag = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_mag_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/complex_to_mag_squared_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/complex_to_mag_squared_pydoc_template.h
new file mode 100644
index 0000000000..2b152fbc11
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/complex_to_mag_squared_pydoc_template.h
@@ -0,0 +1,25 @@
+/*
+ * 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, blocks, __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_blocks_complex_to_mag_squared = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_mag_squared_complex_to_mag_squared =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_mag_squared_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/complex_to_magphase_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/complex_to_magphase_pydoc_template.h
new file mode 100644
index 0000000000..a7a56e10fb
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/complex_to_magphase_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, blocks, __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_blocks_complex_to_magphase = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_magphase_complex_to_magphase = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_magphase_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/complex_to_real_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/complex_to_real_pydoc_template.h
new file mode 100644
index 0000000000..773e5e6a60
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/complex_to_real_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, blocks, __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_blocks_complex_to_real = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_real_complex_to_real = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_complex_to_real_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/conjugate_cc_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/conjugate_cc_pydoc_template.h
new file mode 100644
index 0000000000..39668f7475
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/conjugate_cc_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, blocks, __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_blocks_conjugate_cc = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_conjugate_cc_conjugate_cc = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_conjugate_cc_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/control_loop_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/control_loop_pydoc_template.h
new file mode 100644
index 0000000000..65a673125a
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/control_loop_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, blocks, __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_blocks_control_loop = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_control_loop_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_control_loop_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_control_loop_2 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_update_gains = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_advance_loop = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_phase_wrap = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_frequency_limit = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_set_loop_bandwidth = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_set_damping_factor = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_set_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_set_beta = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_set_frequency = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_set_phase = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_set_max_freq = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_set_min_freq = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_get_loop_bandwidth = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_get_damping_factor = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_get_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_get_beta = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_get_frequency = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_get_phase = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_get_max_freq = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_control_loop_get_min_freq = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tanhf_lut = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/copy_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/copy_pydoc_template.h
new file mode 100644
index 0000000000..f1a5c0bbad
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/copy_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, blocks, __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_blocks_copy = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_copy_copy_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_copy_copy_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_copy_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_copy_set_enabled = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_copy_enabled = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/correctiq_auto_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/correctiq_auto_pydoc_template.h
new file mode 100644
index 0000000000..4c6f2b3185
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/correctiq_auto_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, blocks, __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_blocks_correctiq_auto = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_auto_correctiq_auto_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_auto_correctiq_auto_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_auto_get_freq = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_auto_get_gain = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_auto_set_freq = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_auto_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_auto_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/correctiq_man_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/correctiq_man_pydoc_template.h
new file mode 100644
index 0000000000..4f721b6bf6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/correctiq_man_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, blocks, __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_blocks_correctiq_man = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_man_correctiq_man_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_man_correctiq_man_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_man_get_real = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_man_get_imag = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_man_set_real = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_man_set_imag = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_man_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/correctiq_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/correctiq_pydoc_template.h
new file mode 100644
index 0000000000..64b3841bb6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/correctiq_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, blocks, __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_blocks_correctiq = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_correctiq = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_correctiq_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/correctiq_swapiq_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/correctiq_swapiq_pydoc_template.h
new file mode 100644
index 0000000000..2d9e374f36
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/correctiq_swapiq_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, blocks, __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_blocks_swap_iq = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_swap_iq_swap_iq = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_swap_iq_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/count_bits_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/count_bits_pydoc_template.h
new file mode 100644
index 0000000000..18946b7291
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/count_bits_pydoc_template.h
@@ -0,0 +1,27 @@
+/*
+ * 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, blocks, __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_blocks_count_bits8 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_count_bits16 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_count_bits32 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_count_bits64 = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_b_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_b_pydoc_template.h
new file mode 100644
index 0000000000..f425b00e11
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_b_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, blocks, __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_blocks_ctrlport_probe2_b = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_b_ctrlport_probe2_b_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_b_ctrlport_probe2_b_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_b_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_b_get = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_b_set_length = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_c_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_c_pydoc_template.h
new file mode 100644
index 0000000000..b2199c4360
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_c_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, blocks, __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_blocks_ctrlport_probe2_c = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_c_ctrlport_probe2_c_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_c_ctrlport_probe2_c_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_c_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_c_get = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_c_set_length = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_f_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_f_pydoc_template.h
new file mode 100644
index 0000000000..b0d253ba18
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_f_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, blocks, __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_blocks_ctrlport_probe2_f = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_f_ctrlport_probe2_f_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_f_ctrlport_probe2_f_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_f_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_f_get = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_f_set_length = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_i_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_i_pydoc_template.h
new file mode 100644
index 0000000000..a32a2d6e7f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_i_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, blocks, __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_blocks_ctrlport_probe2_i = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_i_ctrlport_probe2_i_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_i_ctrlport_probe2_i_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_i_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_i_get = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_i_set_length = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_s_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_s_pydoc_template.h
new file mode 100644
index 0000000000..b56f52e962
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe2_s_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, blocks, __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_blocks_ctrlport_probe2_s = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_s_ctrlport_probe2_s_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_s_ctrlport_probe2_s_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_s_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_s_get = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe2_s_set_length = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe_c_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe_c_pydoc_template.h
new file mode 100644
index 0000000000..793ed9a2d6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/ctrlport_probe_c_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, blocks, __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_blocks_ctrlport_probe_c = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe_c_ctrlport_probe_c_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe_c_ctrlport_probe_c_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe_c_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_ctrlport_probe_c_get = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/deinterleave_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/deinterleave_pydoc_template.h
new file mode 100644
index 0000000000..12109331f7
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/deinterleave_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, blocks, __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_blocks_deinterleave = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_deinterleave_deinterleave = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_deinterleave_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/delay_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/delay_pydoc_template.h
new file mode 100644
index 0000000000..11eef2c9c8
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/delay_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, blocks, __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_blocks_delay = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_delay_delay_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_delay_delay_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_delay_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_delay_dly = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_delay_set_dly = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/divide_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/divide_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/divide_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, blocks, __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-blocks/python/blocks/bindings/docstrings/endian_swap_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/endian_swap_pydoc_template.h
new file mode 100644
index 0000000000..4654a38018
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/endian_swap_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, blocks, __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_blocks_endian_swap = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_endian_swap_endian_swap = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_endian_swap_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/exponentiate_const_cci_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/exponentiate_const_cci_pydoc_template.h
new file mode 100644
index 0000000000..972318a543
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/exponentiate_const_cci_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, blocks, __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_blocks_exponentiate_const_cci = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_exponentiate_const_cci_exponentiate_const_cci_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_exponentiate_const_cci_exponentiate_const_cci_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_exponentiate_const_cci_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_exponentiate_const_cci_set_exponent = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/file_descriptor_sink_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/file_descriptor_sink_pydoc_template.h
new file mode 100644
index 0000000000..e4ded4a387
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/file_descriptor_sink_pydoc_template.h
@@ -0,0 +1,25 @@
+/*
+ * 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, blocks, __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_blocks_file_descriptor_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_descriptor_sink_file_descriptor_sink =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_descriptor_sink_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/file_descriptor_source_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/file_descriptor_source_pydoc_template.h
new file mode 100644
index 0000000000..f8cb68a694
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/file_descriptor_source_pydoc_template.h
@@ -0,0 +1,29 @@
+/*
+ * 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, blocks, __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_blocks_file_descriptor_source = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_descriptor_source_file_descriptor_source_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_descriptor_source_file_descriptor_source_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_descriptor_source_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/file_meta_sink_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/file_meta_sink_pydoc_template.h
new file mode 100644
index 0000000000..86cbd0166a
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/file_meta_sink_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, blocks, __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_blocks_file_meta_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_sink_file_meta_sink_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_sink_file_meta_sink_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_sink_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_sink_open = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_sink_close = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_sink_do_update = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_sink_set_unbuffered = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/file_meta_source_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/file_meta_source_pydoc_template.h
new file mode 100644
index 0000000000..0e8a60aac0
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/file_meta_source_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, blocks, __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_blocks_file_meta_source = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_source_file_meta_source_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_source_file_meta_source_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_source_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_source_open = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_source_close = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_meta_source_do_update = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/file_sink_base_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/file_sink_base_pydoc_template.h
new file mode 100644
index 0000000000..12cf2becc9
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/file_sink_base_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, blocks, __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_blocks_file_sink_base = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_sink_base_file_sink_base = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_sink_base_open = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_sink_base_close = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_sink_base_do_update = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_sink_base_set_unbuffered = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/file_sink_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/file_sink_pydoc_template.h
new file mode 100644
index 0000000000..e2fb4c2a77
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/file_sink_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, blocks, __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_blocks_file_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_sink_file_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_sink_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/file_source_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/file_source_pydoc_template.h
new file mode 100644
index 0000000000..0c45ebd355
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/file_source_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, blocks, __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_blocks_file_source = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_source_file_source_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_source_file_source_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_source_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_source_seek = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_source_open = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_source_close = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_file_source_set_begin_tag = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/float_to_char_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/float_to_char_pydoc_template.h
new file mode 100644
index 0000000000..d2367fc522
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/float_to_char_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, blocks, __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_blocks_float_to_char = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_char_float_to_char_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_char_float_to_char_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_char_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_char_scale = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_char_set_scale = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/float_to_complex_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/float_to_complex_pydoc_template.h
new file mode 100644
index 0000000000..6d1a1184ea
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/float_to_complex_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, blocks, __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_blocks_float_to_complex = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_complex_float_to_complex = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_complex_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/float_to_int_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/float_to_int_pydoc_template.h
new file mode 100644
index 0000000000..f937731935
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/float_to_int_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, blocks, __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_blocks_float_to_int = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_int_float_to_int_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_int_float_to_int_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_int_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_int_scale = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_int_set_scale = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/float_to_short_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/float_to_short_pydoc_template.h
new file mode 100644
index 0000000000..93dc623beb
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/float_to_short_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, blocks, __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_blocks_float_to_short = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_short_float_to_short_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_short_float_to_short_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_short_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_short_scale = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_short_set_scale = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/float_to_uchar_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/float_to_uchar_pydoc_template.h
new file mode 100644
index 0000000000..285ab717b2
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/float_to_uchar_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, blocks, __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_blocks_float_to_uchar = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_uchar_float_to_uchar = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_float_to_uchar_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/head_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/head_pydoc_template.h
new file mode 100644
index 0000000000..198e260524
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/head_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, blocks, __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_blocks_head = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_head_head_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_head_head_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_head_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_head_reset = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_head_set_length = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/int_to_float_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/int_to_float_pydoc_template.h
new file mode 100644
index 0000000000..7049777f2e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/int_to_float_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, blocks, __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_blocks_int_to_float = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_int_to_float_int_to_float_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_int_to_float_int_to_float_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_int_to_float_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_int_to_float_scale = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_int_to_float_set_scale = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/integrate_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/integrate_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/integrate_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, blocks, __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-blocks/python/blocks/bindings/docstrings/interleave_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/interleave_pydoc_template.h
new file mode 100644
index 0000000000..a3f6d4e4a4
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/interleave_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, blocks, __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_blocks_interleave = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_interleave_interleave = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_interleave_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/interleaved_char_to_complex_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/interleaved_char_to_complex_pydoc_template.h
new file mode 100644
index 0000000000..96312fb541
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/interleaved_char_to_complex_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, blocks, __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_blocks_interleaved_char_to_complex = R"doc()doc";
+
+
+static const char*
+ __doc_gr_blocks_interleaved_char_to_complex_interleaved_char_to_complex_0 =
+ R"doc()doc";
+
+
+static const char*
+ __doc_gr_blocks_interleaved_char_to_complex_interleaved_char_to_complex_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_interleaved_char_to_complex_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_interleaved_char_to_complex_set_scale_factor =
+ R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/interleaved_short_to_complex_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/interleaved_short_to_complex_pydoc_template.h
new file mode 100644
index 0000000000..f165937a03
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/interleaved_short_to_complex_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, blocks, __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_blocks_interleaved_short_to_complex = R"doc()doc";
+
+
+static const char*
+ __doc_gr_blocks_interleaved_short_to_complex_interleaved_short_to_complex_0 =
+ R"doc()doc";
+
+
+static const char*
+ __doc_gr_blocks_interleaved_short_to_complex_interleaved_short_to_complex_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_interleaved_short_to_complex_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_interleaved_short_to_complex_set_swap = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_interleaved_short_to_complex_set_scale_factor =
+ R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/keep_m_in_n_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/keep_m_in_n_pydoc_template.h
new file mode 100644
index 0000000000..b9b4f3d667
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/keep_m_in_n_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, blocks, __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_blocks_keep_m_in_n = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_keep_m_in_n_keep_m_in_n_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_keep_m_in_n_keep_m_in_n_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_keep_m_in_n_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_keep_m_in_n_set_m = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_keep_m_in_n_set_n = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_keep_m_in_n_set_offset = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/keep_one_in_n_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/keep_one_in_n_pydoc_template.h
new file mode 100644
index 0000000000..9913c9c09b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/keep_one_in_n_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, blocks, __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_blocks_keep_one_in_n = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_keep_one_in_n_keep_one_in_n_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_keep_one_in_n_keep_one_in_n_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_keep_one_in_n_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_keep_one_in_n_set_n = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/lfsr_15_1_0_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/lfsr_15_1_0_pydoc_template.h
new file mode 100644
index 0000000000..0ed7c30203
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/lfsr_15_1_0_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, blocks, __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_blocks_lfsr_15_1_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_15_1_0_lfsr_15_1_0_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_15_1_0_lfsr_15_1_0_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_15_1_0_reset = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_15_1_0_next_bit = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_15_1_0_next_byte = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/lfsr_32k_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/lfsr_32k_pydoc_template.h
new file mode 100644
index 0000000000..28abc7bb00
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/lfsr_32k_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, blocks, __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_blocks_lfsr_32k = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_32k_lfsr_32k_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_32k_lfsr_32k_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_32k_reset = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_32k_next_bit = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_32k_next_byte = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_32k_next_short = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/lfsr_32k_source_s_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/lfsr_32k_source_s_pydoc_template.h
new file mode 100644
index 0000000000..a9f091d985
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/lfsr_32k_source_s_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, blocks, __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_blocks_lfsr_32k_source_s = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_32k_source_s_lfsr_32k_source_s = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_lfsr_32k_source_s_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/log2_const_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/log2_const_pydoc_template.h
new file mode 100644
index 0000000000..e31bf5582e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/log2_const_pydoc_template.h
@@ -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
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, blocks, __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_blocks_log2_const_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_log2_const_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_log2_const_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_log2_const_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_log2_const_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_log2_const_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_log2_const_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_log2_const_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_log2_const_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_log2_const_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_log2_const_0 = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/magphase_to_complex_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/magphase_to_complex_pydoc_template.h
new file mode 100644
index 0000000000..48d54ec273
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/magphase_to_complex_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, blocks, __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_blocks_magphase_to_complex = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_magphase_to_complex_magphase_to_complex = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_magphase_to_complex_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/max_blk_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/max_blk_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/max_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, blocks, __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-blocks/python/blocks/bindings/docstrings/message_debug_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/message_debug_pydoc_template.h
new file mode 100644
index 0000000000..61d586e099
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/message_debug_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, blocks, __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_blocks_message_debug = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_debug_message_debug_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_debug_message_debug_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_debug_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_debug_num_messages = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_debug_get_message = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/message_strobe_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/message_strobe_pydoc_template.h
new file mode 100644
index 0000000000..f8b4525064
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/message_strobe_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, blocks, __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_blocks_message_strobe = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_message_strobe_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_message_strobe_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_set_msg = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_msg = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_set_period = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_period = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/message_strobe_random_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/message_strobe_random_pydoc_template.h
new file mode 100644
index 0000000000..d088b7d05d
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/message_strobe_random_pydoc_template.h
@@ -0,0 +1,53 @@
+/*
+ * 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, blocks, __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_blocks_message_strobe_random = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_random_message_strobe_random_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_random_message_strobe_random_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_random_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_random_set_msg = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_random_msg = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_random_set_dist = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_random_dist = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_random_set_mean = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_random_mean = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_random_set_std = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_message_strobe_random_std = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/min_blk_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/min_blk_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/min_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, blocks, __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-blocks/python/blocks/bindings/docstrings/moving_average_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/moving_average_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/moving_average_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, blocks, __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-blocks/python/blocks/bindings/docstrings/multiply_by_tag_value_cc_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/multiply_by_tag_value_cc_pydoc_template.h
new file mode 100644
index 0000000000..193712eeb8
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/multiply_by_tag_value_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, blocks, __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_blocks_multiply_by_tag_value_cc = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_multiply_by_tag_value_cc_multiply_by_tag_value_cc_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_multiply_by_tag_value_cc_multiply_by_tag_value_cc_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_multiply_by_tag_value_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_multiply_by_tag_value_cc_k = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/multiply_conjugate_cc_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/multiply_conjugate_cc_pydoc_template.h
new file mode 100644
index 0000000000..64a9185954
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/multiply_conjugate_cc_pydoc_template.h
@@ -0,0 +1,25 @@
+/*
+ * 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, blocks, __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_blocks_multiply_conjugate_cc = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_multiply_conjugate_cc_multiply_conjugate_cc =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_multiply_conjugate_cc_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/multiply_const_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/multiply_const_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/multiply_const_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, blocks, __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-blocks/python/blocks/bindings/docstrings/multiply_const_v_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/multiply_const_v_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/multiply_const_v_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, blocks, __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-blocks/python/blocks/bindings/docstrings/multiply_matrix_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/multiply_matrix_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/multiply_matrix_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, blocks, __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-blocks/python/blocks/bindings/docstrings/multiply_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/multiply_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/multiply_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, blocks, __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-blocks/python/blocks/bindings/docstrings/mute_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/mute_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/mute_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, blocks, __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-blocks/python/blocks/bindings/docstrings/nlog10_ff_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/nlog10_ff_pydoc_template.h
new file mode 100644
index 0000000000..3b39147edf
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/nlog10_ff_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, blocks, __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_blocks_nlog10_ff = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_nlog10_ff_nlog10_ff = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_nlog10_ff_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/nop_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/nop_pydoc_template.h
new file mode 100644
index 0000000000..8b146e0317
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/nop_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, blocks, __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_blocks_nop = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_nop_nop_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_nop_nop_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_nop_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_nop_nmsgs_received = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_nop_ctrlport_test = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_nop_set_ctrlport_test = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/not_blk_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/not_blk_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/not_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, blocks, __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-blocks/python/blocks/bindings/docstrings/null_sink_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/null_sink_pydoc_template.h
new file mode 100644
index 0000000000..739c977686
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/null_sink_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, blocks, __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_blocks_null_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_null_sink_null_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_null_sink_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/null_source_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/null_source_pydoc_template.h
new file mode 100644
index 0000000000..c274e3160b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/null_source_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, blocks, __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_blocks_null_source = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_null_source_null_source = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_null_source_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/or_blk_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/or_blk_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/or_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, blocks, __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-blocks/python/blocks/bindings/docstrings/pack_k_bits_bb_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/pack_k_bits_bb_pydoc_template.h
new file mode 100644
index 0000000000..0aa04d37ef
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/pack_k_bits_bb_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, blocks, __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_blocks_pack_k_bits_bb = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pack_k_bits_bb_pack_k_bits_bb = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pack_k_bits_bb_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/pack_k_bits_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/pack_k_bits_pydoc_template.h
new file mode 100644
index 0000000000..470dcf0f1e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/pack_k_bits_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, blocks, __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_blocks_kernel_pack_k_bits = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_kernel_pack_k_bits_pack_k_bits_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_kernel_pack_k_bits_pack_k_bits_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_kernel_pack_k_bits_pack = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_kernel_pack_k_bits_pack_rev = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_kernel_pack_k_bits_k = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/packed_to_unpacked_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/packed_to_unpacked_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/packed_to_unpacked_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, blocks, __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-blocks/python/blocks/bindings/docstrings/patterned_interleaver_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/patterned_interleaver_pydoc_template.h
new file mode 100644
index 0000000000..f1675bb6f7
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/patterned_interleaver_pydoc_template.h
@@ -0,0 +1,25 @@
+/*
+ * 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, blocks, __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_blocks_patterned_interleaver = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_patterned_interleaver_patterned_interleaver =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_patterned_interleaver_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/pdu_filter_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/pdu_filter_pydoc_template.h
new file mode 100644
index 0000000000..a4e9d0d06b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/pdu_filter_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, blocks, __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_blocks_pdu_filter = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_filter_pdu_filter_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_filter_pdu_filter_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_filter_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_filter_set_key = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_filter_set_val = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_filter_set_inversion = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/pdu_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/pdu_pydoc_template.h
new file mode 100644
index 0000000000..8f16734a4c
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/pdu_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, blocks, __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_blocks_pdu_pdu_port_id = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_itemsize = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_type_matches = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_make_pdu_vector = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_type_from_pmt = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/pdu_remove_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/pdu_remove_pydoc_template.h
new file mode 100644
index 0000000000..62b512fde5
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/pdu_remove_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, blocks, __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_blocks_pdu_remove = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_remove_pdu_remove_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_remove_pdu_remove_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_remove_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_remove_set_key = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/pdu_set_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/pdu_set_pydoc_template.h
new file mode 100644
index 0000000000..cbe2a27503
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/pdu_set_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, blocks, __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_blocks_pdu_set = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_set_pdu_set_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_set_pdu_set_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_set_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_set_set_key = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_set_set_val = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/pdu_to_tagged_stream_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/pdu_to_tagged_stream_pydoc_template.h
new file mode 100644
index 0000000000..2ab003a60b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/pdu_to_tagged_stream_pydoc_template.h
@@ -0,0 +1,25 @@
+/*
+ * 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, blocks, __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_blocks_pdu_to_tagged_stream = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_to_tagged_stream_pdu_to_tagged_stream =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_pdu_to_tagged_stream_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/peak_detector2_fb_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/peak_detector2_fb_pydoc_template.h
new file mode 100644
index 0000000000..5df39b03f9
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/peak_detector2_fb_pydoc_template.h
@@ -0,0 +1,46 @@
+/*
+ * 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, blocks, __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_blocks_peak_detector2_fb = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_peak_detector2_fb_peak_detector2_fb_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_peak_detector2_fb_peak_detector2_fb_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_peak_detector2_fb_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_peak_detector2_fb_set_threshold_factor_rise =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_peak_detector2_fb_set_look_ahead = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_peak_detector2_fb_set_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_peak_detector2_fb_threshold_factor_rise = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_peak_detector2_fb_look_ahead = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_peak_detector2_fb_alpha = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/peak_detector_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/peak_detector_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/peak_detector_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, blocks, __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-blocks/python/blocks/bindings/docstrings/plateau_detector_fb_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/plateau_detector_fb_pydoc_template.h
new file mode 100644
index 0000000000..54175ce11b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/plateau_detector_fb_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, blocks, __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_blocks_plateau_detector_fb = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_plateau_detector_fb_plateau_detector_fb_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_plateau_detector_fb_plateau_detector_fb_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_plateau_detector_fb_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_plateau_detector_fb_set_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_plateau_detector_fb_threshold = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/probe_rate_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/probe_rate_pydoc_template.h
new file mode 100644
index 0000000000..b832bf97cd
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/probe_rate_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, blocks, __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_blocks_probe_rate = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_probe_rate_probe_rate_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_probe_rate_probe_rate_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_probe_rate_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_probe_rate_set_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_probe_rate_rate = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_probe_rate_start = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_probe_rate_stop = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/probe_signal_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/probe_signal_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/probe_signal_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, blocks, __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-blocks/python/blocks/bindings/docstrings/probe_signal_v_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/probe_signal_v_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/probe_signal_v_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, blocks, __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-blocks/python/blocks/bindings/docstrings/random_pdu_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/random_pdu_pydoc_template.h
new file mode 100644
index 0000000000..b5a4e94ae2
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/random_pdu_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, blocks, __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_blocks_random_pdu = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_random_pdu_random_pdu = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_random_pdu_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/regenerate_bb_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/regenerate_bb_pydoc_template.h
new file mode 100644
index 0000000000..1d3d0fc77c
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/regenerate_bb_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, blocks, __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_blocks_regenerate_bb = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_regenerate_bb_regenerate_bb_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_regenerate_bb_regenerate_bb_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_regenerate_bb_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_regenerate_bb_set_max_regen = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_regenerate_bb_set_period = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_regenerate_bb_max_regen = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_regenerate_bb_period = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/repack_bits_bb_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/repack_bits_bb_pydoc_template.h
new file mode 100644
index 0000000000..50abaa8536
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/repack_bits_bb_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, blocks, __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_blocks_repack_bits_bb = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_repack_bits_bb_repack_bits_bb_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_repack_bits_bb_repack_bits_bb_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_repack_bits_bb_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_repack_bits_bb_set_k_and_l = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/repeat_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/repeat_pydoc_template.h
new file mode 100644
index 0000000000..a380e07346
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/repeat_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, blocks, __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_blocks_repeat = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_repeat_repeat_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_repeat_repeat_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_repeat_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_repeat_interpolation = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_repeat_set_interpolation = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/rms_cf_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/rms_cf_pydoc_template.h
new file mode 100644
index 0000000000..9edcbce8b3
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/rms_cf_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, blocks, __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_blocks_rms_cf = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rms_cf_rms_cf_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rms_cf_rms_cf_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rms_cf_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rms_cf_set_alpha = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/rms_ff_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/rms_ff_pydoc_template.h
new file mode 100644
index 0000000000..950a9290f5
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/rms_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, blocks, __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_blocks_rms_ff = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rms_ff_rms_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rms_ff_rms_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rms_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rms_ff_set_alpha = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/rotator_cc_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/rotator_cc_pydoc_template.h
new file mode 100644
index 0000000000..4e40ee5048
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/rotator_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, blocks, __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_blocks_rotator_cc = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rotator_cc_rotator_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rotator_cc_rotator_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rotator_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rotator_cc_set_phase_inc = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/rotator_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/rotator_pydoc_template.h
new file mode 100644
index 0000000000..1624871733
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/rotator_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, blocks, __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_blocks_rotator = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rotator_rotator_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rotator_rotator_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rotator_set_phase = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rotator_set_phase_incr = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rotator_rotate = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_rotator_rotateN = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/sample_and_hold_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/sample_and_hold_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/sample_and_hold_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, blocks, __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-blocks/python/blocks/bindings/docstrings/selector_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/selector_pydoc_template.h
new file mode 100644
index 0000000000..d4a2eea48b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/selector_pydoc_template.h
@@ -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
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, blocks, __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_blocks_selector = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_selector_selector_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_selector_selector_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_selector_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_selector_set_enabled = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_selector_enabled = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_selector_set_input_index = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_selector_input_index = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_selector_set_output_index = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_selector_output_index = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/short_to_char_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/short_to_char_pydoc_template.h
new file mode 100644
index 0000000000..c88a52c036
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/short_to_char_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, blocks, __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_blocks_short_to_char = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_short_to_char_short_to_char = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_short_to_char_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/short_to_float_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/short_to_float_pydoc_template.h
new file mode 100644
index 0000000000..b7d6a7b343
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/short_to_float_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, blocks, __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_blocks_short_to_float = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_short_to_float_short_to_float_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_short_to_float_short_to_float_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_short_to_float_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_short_to_float_scale = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_short_to_float_set_scale = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/skiphead_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/skiphead_pydoc_template.h
new file mode 100644
index 0000000000..1cde6d9b2c
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/skiphead_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, blocks, __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_blocks_skiphead = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_skiphead_skiphead = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_skiphead_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/socket_pdu_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/socket_pdu_pydoc_template.h
new file mode 100644
index 0000000000..07aa3eb239
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/socket_pdu_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, blocks, __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_blocks_socket_pdu = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_socket_pdu_socket_pdu = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_socket_pdu_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/stream_mux_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/stream_mux_pydoc_template.h
new file mode 100644
index 0000000000..db8d19f532
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/stream_mux_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, blocks, __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_blocks_stream_mux = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stream_mux_stream_mux = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stream_mux_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/stream_to_streams_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/stream_to_streams_pydoc_template.h
new file mode 100644
index 0000000000..b0abf60c32
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/stream_to_streams_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, blocks, __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_blocks_stream_to_streams = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stream_to_streams_stream_to_streams = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stream_to_streams_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/stream_to_tagged_stream_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/stream_to_tagged_stream_pydoc_template.h
new file mode 100644
index 0000000000..75eee2684f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/stream_to_tagged_stream_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, blocks, __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_blocks_stream_to_tagged_stream = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stream_to_tagged_stream_stream_to_tagged_stream_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stream_to_tagged_stream_stream_to_tagged_stream_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stream_to_tagged_stream_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stream_to_tagged_stream_set_packet_len = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stream_to_tagged_stream_set_packet_len_pmt =
+ R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/stream_to_vector_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/stream_to_vector_pydoc_template.h
new file mode 100644
index 0000000000..9ee79ceb1f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/stream_to_vector_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, blocks, __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_blocks_stream_to_vector = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stream_to_vector_stream_to_vector = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stream_to_vector_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/streams_to_stream_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/streams_to_stream_pydoc_template.h
new file mode 100644
index 0000000000..d8d76a8df8
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/streams_to_stream_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, blocks, __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_blocks_streams_to_stream = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_streams_to_stream_streams_to_stream = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_streams_to_stream_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/streams_to_vector_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/streams_to_vector_pydoc_template.h
new file mode 100644
index 0000000000..ddee994b12
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/streams_to_vector_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, blocks, __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_blocks_streams_to_vector = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_streams_to_vector_streams_to_vector = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_streams_to_vector_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/stretch_ff_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/stretch_ff_pydoc_template.h
new file mode 100644
index 0000000000..40bf945ad9
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/stretch_ff_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, blocks, __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_blocks_stretch_ff = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stretch_ff_stretch_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stretch_ff_stretch_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stretch_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stretch_ff_lo = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stretch_ff_set_lo = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_stretch_ff_vlen = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/sub_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/sub_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/sub_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, blocks, __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-blocks/python/blocks/bindings/docstrings/tag_debug_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tag_debug_pydoc_template.h
new file mode 100644
index 0000000000..861f706f73
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tag_debug_pydoc_template.h
@@ -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
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, blocks, __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_blocks_tag_debug = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_debug_tag_debug_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_debug_tag_debug_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_debug_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_debug_current_tags = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_debug_num_tags = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_debug_set_display = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_debug_set_save_all = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_debug_set_key_filter = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_debug_key_filter = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/tag_gate_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tag_gate_pydoc_template.h
new file mode 100644
index 0000000000..d0058a44c2
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tag_gate_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, blocks, __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_blocks_tag_gate = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_gate_tag_gate_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_gate_tag_gate_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_gate_set_propagation = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_gate_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_gate_set_single_key = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_gate_single_key = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/tag_share_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tag_share_pydoc_template.h
new file mode 100644
index 0000000000..2e6b5a3f79
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tag_share_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, blocks, __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_blocks_tag_share = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_share_tag_share = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tag_share_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/tagged_file_sink_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tagged_file_sink_pydoc_template.h
new file mode 100644
index 0000000000..6b681eb57e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tagged_file_sink_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, blocks, __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_blocks_tagged_file_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tagged_file_sink_tagged_file_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tagged_file_sink_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_align_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_align_pydoc_template.h
new file mode 100644
index 0000000000..e8835f3a39
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_align_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, blocks, __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_blocks_tagged_stream_align = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tagged_stream_align_tagged_stream_align = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tagged_stream_align_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_multiply_length_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_multiply_length_pydoc_template.h
new file mode 100644
index 0000000000..949dd64ffe
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_multiply_length_pydoc_template.h
@@ -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
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, blocks, __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_blocks_tagged_stream_multiply_length = R"doc()doc";
+
+
+static const char*
+ __doc_gr_blocks_tagged_stream_multiply_length_tagged_stream_multiply_length_0 =
+ R"doc()doc";
+
+
+static const char*
+ __doc_gr_blocks_tagged_stream_multiply_length_tagged_stream_multiply_length_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tagged_stream_multiply_length_set_scalar = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tagged_stream_multiply_length_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_mux_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_mux_pydoc_template.h
new file mode 100644
index 0000000000..82d715ace7
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_mux_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, blocks, __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_blocks_tagged_stream_mux = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tagged_stream_mux_tagged_stream_mux = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tagged_stream_mux_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_to_pdu_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_to_pdu_pydoc_template.h
new file mode 100644
index 0000000000..76d15951ba
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tagged_stream_to_pdu_pydoc_template.h
@@ -0,0 +1,25 @@
+/*
+ * 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, blocks, __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_blocks_tagged_stream_to_pdu = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tagged_stream_to_pdu_tagged_stream_to_pdu =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tagged_stream_to_pdu_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/tags_strobe_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tags_strobe_pydoc_template.h
new file mode 100644
index 0000000000..7b613a5231
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tags_strobe_pydoc_template.h
@@ -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
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, blocks, __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_blocks_tags_strobe = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tags_strobe_tags_strobe_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tags_strobe_tags_strobe_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tags_strobe_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tags_strobe_set_value = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tags_strobe_set_key = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tags_strobe_value = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tags_strobe_key = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tags_strobe_set_nsamps = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tags_strobe_nsamps = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/tcp_server_sink_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tcp_server_sink_pydoc_template.h
new file mode 100644
index 0000000000..cca0eb1992
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tcp_server_sink_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, blocks, __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_blocks_tcp_server_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tcp_server_sink_tcp_server_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tcp_server_sink_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/test_tag_variable_rate_ff_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/test_tag_variable_rate_ff_pydoc_template.h
new file mode 100644
index 0000000000..da020e8590
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/test_tag_variable_rate_ff_pydoc_template.h
@@ -0,0 +1,25 @@
+/*
+ * 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, blocks, __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_blocks_test_tag_variable_rate_ff = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_test_tag_variable_rate_ff_test_tag_variable_rate_ff =
+ R"doc()doc";
+
+
+static const char* __doc_gr_blocks_test_tag_variable_rate_ff_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/threshold_ff_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/threshold_ff_pydoc_template.h
new file mode 100644
index 0000000000..36e9920bc4
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/threshold_ff_pydoc_template.h
@@ -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
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, blocks, __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_blocks_threshold_ff = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_threshold_ff_threshold_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_threshold_ff_threshold_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_threshold_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_threshold_ff_lo = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_threshold_ff_set_lo = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_threshold_ff_hi = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_threshold_ff_set_hi = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_threshold_ff_last_state = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_threshold_ff_set_last_state = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/throttle_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/throttle_pydoc_template.h
new file mode 100644
index 0000000000..2610d3418d
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/throttle_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, blocks, __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_blocks_throttle = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_throttle_throttle_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_throttle_throttle_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_throttle_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_throttle_set_sample_rate = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_throttle_sample_rate = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/transcendental_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/transcendental_pydoc_template.h
new file mode 100644
index 0000000000..7a83f57142
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/transcendental_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, blocks, __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_blocks_transcendental = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_transcendental_transcendental = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_transcendental_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/tsb_vector_sink_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tsb_vector_sink_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tsb_vector_sink_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, blocks, __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-blocks/python/blocks/bindings/docstrings/tuntap_pdu_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/tuntap_pdu_pydoc_template.h
new file mode 100644
index 0000000000..eea7349e62
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/tuntap_pdu_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, blocks, __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_blocks_tuntap_pdu = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tuntap_pdu_tuntap_pdu = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_tuntap_pdu_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/uchar_to_float_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/uchar_to_float_pydoc_template.h
new file mode 100644
index 0000000000..72826a4c6a
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/uchar_to_float_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, blocks, __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_blocks_uchar_to_float = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_uchar_to_float_uchar_to_float = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_uchar_to_float_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/udp_sink_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/udp_sink_pydoc_template.h
new file mode 100644
index 0000000000..316a0eed35
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/udp_sink_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, blocks, __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_blocks_udp_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_sink_udp_sink_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_sink_udp_sink_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_sink_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_sink_payload_size = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_sink_connect = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_sink_disconnect = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/udp_source_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/udp_source_pydoc_template.h
new file mode 100644
index 0000000000..d0ed635ea3
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/udp_source_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, blocks, __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_blocks_udp_source = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_source_udp_source_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_source_udp_source_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_source_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_source_connect = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_source_disconnect = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_source_payload_size = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_udp_source_get_port = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/unpack_k_bits_bb_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/unpack_k_bits_bb_pydoc_template.h
new file mode 100644
index 0000000000..f7eb535538
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/unpack_k_bits_bb_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, blocks, __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_blocks_unpack_k_bits_bb = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_unpack_k_bits_bb_unpack_k_bits_bb = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_unpack_k_bits_bb_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/unpack_k_bits_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/unpack_k_bits_pydoc_template.h
new file mode 100644
index 0000000000..0383b23a1d
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/unpack_k_bits_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, blocks, __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_blocks_kernel_unpack_k_bits = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_kernel_unpack_k_bits_unpack_k_bits_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_kernel_unpack_k_bits_unpack_k_bits_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_kernel_unpack_k_bits_unpack = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_kernel_unpack_k_bits_unpack_rev = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_kernel_unpack_k_bits_k = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/unpacked_to_packed_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/unpacked_to_packed_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/unpacked_to_packed_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, blocks, __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-blocks/python/blocks/bindings/docstrings/vco_c_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/vco_c_pydoc_template.h
new file mode 100644
index 0000000000..b9cca0976a
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/vco_c_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, blocks, __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_blocks_vco_c = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vco_c_vco_c = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vco_c_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/vco_f_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/vco_f_pydoc_template.h
new file mode 100644
index 0000000000..739a641539
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/vco_f_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, blocks, __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_blocks_vco_f = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vco_f_vco_f = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vco_f_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/vector_insert_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/vector_insert_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/vector_insert_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, blocks, __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-blocks/python/blocks/bindings/docstrings/vector_map_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/vector_map_pydoc_template.h
new file mode 100644
index 0000000000..c32c963b1b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/vector_map_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, blocks, __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_blocks_vector_map = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vector_map_vector_map_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vector_map_vector_map_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vector_map_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vector_map_set_mapping = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/vector_sink_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/vector_sink_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/vector_sink_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, blocks, __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-blocks/python/blocks/bindings/docstrings/vector_source_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/vector_source_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/vector_source_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, blocks, __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-blocks/python/blocks/bindings/docstrings/vector_to_stream_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/vector_to_stream_pydoc_template.h
new file mode 100644
index 0000000000..31db29dc78
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/vector_to_stream_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, blocks, __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_blocks_vector_to_stream = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vector_to_stream_vector_to_stream = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vector_to_stream_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/vector_to_streams_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/vector_to_streams_pydoc_template.h
new file mode 100644
index 0000000000..47a010eea7
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/vector_to_streams_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, blocks, __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_blocks_vector_to_streams = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vector_to_streams_vector_to_streams = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_vector_to_streams_make = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/wavfile_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/wavfile_pydoc_template.h
new file mode 100644
index 0000000000..2e1f7fe44b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/wavfile_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, blocks, __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_blocks_wavheader_parse = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wav_read_sample = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavheader_write = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wav_write_sample = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavheader_complete = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/wavfile_sink_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/wavfile_sink_pydoc_template.h
new file mode 100644
index 0000000000..137dc82cd1
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/wavfile_sink_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, blocks, __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_blocks_wavfile_sink = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_sink_wavfile_sink_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_sink_wavfile_sink_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_sink_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_sink_open = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_sink_close = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_sink_set_sample_rate = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_sink_set_bits_per_sample = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/wavfile_source_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/wavfile_source_pydoc_template.h
new file mode 100644
index 0000000000..ad002e4a47
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/wavfile_source_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, blocks, __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_blocks_wavfile_source = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_source_wavfile_source_0 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_source_wavfile_source_1 = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_source_make = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_source_sample_rate = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_source_bits_per_sample = R"doc()doc";
+
+
+static const char* __doc_gr_blocks_wavfile_source_channels = R"doc()doc";
diff --git a/gr-blocks/python/blocks/bindings/docstrings/xor_blk_pydoc_template.h b/gr-blocks/python/blocks/bindings/docstrings/xor_blk_pydoc_template.h
new file mode 100644
index 0000000000..2cc56fada6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/docstrings/xor_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, blocks, __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-blocks/python/blocks/bindings/endian_swap_python.cc b/gr-blocks/python/blocks/bindings/endian_swap_python.cc
new file mode 100644
index 0000000000..d8a0319bc4
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/endian_swap_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/endian_swap.h>
+// pydoc.h is automatically generated in the build directory
+#include <endian_swap_pydoc.h>
+
+void bind_endian_swap(py::module& m)
+{
+
+ using endian_swap = ::gr::blocks::endian_swap;
+
+
+ py::class_<endian_swap,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<endian_swap>>(m, "endian_swap", D(endian_swap))
+
+ .def(py::init(&endian_swap::make),
+ py::arg("item_size_bytes") = 1,
+ D(endian_swap, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/exponentiate_const_cci_python.cc b/gr-blocks/python/blocks/bindings/exponentiate_const_cci_python.cc
new file mode 100644
index 0000000000..526cfd0fe4
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/exponentiate_const_cci_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/blocks/exponentiate_const_cci.h>
+// pydoc.h is automatically generated in the build directory
+#include <exponentiate_const_cci_pydoc.h>
+
+void bind_exponentiate_const_cci(py::module& m)
+{
+
+ using exponentiate_const_cci = ::gr::blocks::exponentiate_const_cci;
+
+
+ py::class_<exponentiate_const_cci,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<exponentiate_const_cci>>(
+ m, "exponentiate_const_cci", D(exponentiate_const_cci))
+
+ .def(py::init(&exponentiate_const_cci::make),
+ py::arg("exponent"),
+ py::arg("vlen") = 1,
+ D(exponentiate_const_cci, make))
+
+
+ .def("set_exponent",
+ &exponentiate_const_cci::set_exponent,
+ py::arg("exponent"),
+ D(exponentiate_const_cci, set_exponent))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/file_descriptor_sink_python.cc b/gr-blocks/python/blocks/bindings/file_descriptor_sink_python.cc
new file mode 100644
index 0000000000..c3c9c434d6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/file_descriptor_sink_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/blocks/file_descriptor_sink.h>
+// pydoc.h is automatically generated in the build directory
+#include <file_descriptor_sink_pydoc.h>
+
+void bind_file_descriptor_sink(py::module& m)
+{
+
+ using file_descriptor_sink = ::gr::blocks::file_descriptor_sink;
+
+
+ py::class_<file_descriptor_sink,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<file_descriptor_sink>>(
+ m, "file_descriptor_sink", D(file_descriptor_sink))
+
+ .def(py::init(&file_descriptor_sink::make),
+ py::arg("itemsize"),
+ py::arg("fd"),
+ D(file_descriptor_sink, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/file_descriptor_source_python.cc b/gr-blocks/python/blocks/bindings/file_descriptor_source_python.cc
new file mode 100644
index 0000000000..b777c90f43
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/file_descriptor_source_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/file_descriptor_source.h>
+// pydoc.h is automatically generated in the build directory
+#include <file_descriptor_source_pydoc.h>
+
+void bind_file_descriptor_source(py::module& m)
+{
+
+ using file_descriptor_source = ::gr::blocks::file_descriptor_source;
+
+
+ py::class_<file_descriptor_source,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<file_descriptor_source>>(
+ m, "file_descriptor_source", D(file_descriptor_source))
+
+ .def(py::init(&file_descriptor_source::make),
+ py::arg("itemsize"),
+ py::arg("fd"),
+ py::arg("repeat") = false,
+ D(file_descriptor_source, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/file_meta_sink_python.cc b/gr-blocks/python/blocks/bindings/file_meta_sink_python.cc
new file mode 100644
index 0000000000..0b5fc1d5a0
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/file_meta_sink_python.cc
@@ -0,0 +1,74 @@
+/*
+ * 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/blocks/file_meta_sink.h>
+// pydoc.h is automatically generated in the build directory
+#include <file_meta_sink_pydoc.h>
+
+void bind_file_meta_sink(py::module& m)
+{
+ using file_meta_sink = ::gr::blocks::file_meta_sink;
+
+ py::enum_<gr::blocks::gr_file_types>(m, "gr_file_types")
+ .value("GR_FILE_BYTE", gr::blocks::GR_FILE_BYTE) // 0
+ .value("GR_FILE_CHAR", gr::blocks::GR_FILE_CHAR) // 0
+ .value("GR_FILE_SHORT", gr::blocks::GR_FILE_SHORT) // 1
+ .value("GR_FILE_INT", gr::blocks::GR_FILE_INT) // 2
+ .value("GR_FILE_LONG", gr::blocks::GR_FILE_LONG) // 3
+ .value("GR_FILE_LONG_LONG", gr::blocks::GR_FILE_LONG_LONG) // 4
+ .value("GR_FILE_FLOAT", gr::blocks::GR_FILE_FLOAT) // 5
+ .value("GR_FILE_DOUBLE", gr::blocks::GR_FILE_DOUBLE) // 6
+ .export_values();
+
+ py::class_<file_meta_sink,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<file_meta_sink>>(m, "file_meta_sink", D(file_meta_sink))
+
+ .def(py::init(&file_meta_sink::make),
+ py::arg("itemsize"),
+ py::arg("filename"),
+ py::arg("samp_rate") = 1,
+ py::arg("relative_rate") = 1,
+ py::arg("type") = ::gr::blocks::gr_file_types::GR_FILE_FLOAT,
+ py::arg("complex") = true,
+ py::arg("max_segment_size") = 1000000,
+ py::arg("extra_dict") = pmt::make_dict(),
+ py::arg("detached_header") = false,
+ D(file_meta_sink, make))
+
+
+ .def("open", &file_meta_sink::open, py::arg("filename"), D(file_meta_sink, open))
+
+
+ .def("close", &file_meta_sink::close, D(file_meta_sink, close))
+
+
+ .def("do_update", &file_meta_sink::do_update, D(file_meta_sink, do_update))
+
+
+ .def("set_unbuffered",
+ &file_meta_sink::set_unbuffered,
+ py::arg("unbuffered"),
+ D(file_meta_sink, set_unbuffered))
+
+ ;
+
+ m.attr("METADATA_VERSION") = gr::blocks::METADATA_VERSION;
+ m.attr("METADATA_HEADER_SIZE") = gr::blocks::METADATA_HEADER_SIZE;
+}
diff --git a/gr-blocks/python/blocks/bindings/file_meta_source_python.cc b/gr-blocks/python/blocks/bindings/file_meta_source_python.cc
new file mode 100644
index 0000000000..c7161d5d63
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/file_meta_source_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/blocks/file_meta_source.h>
+// pydoc.h is automatically generated in the build directory
+#include <file_meta_source_pydoc.h>
+
+void bind_file_meta_source(py::module& m)
+{
+
+ using file_meta_source = ::gr::blocks::file_meta_source;
+
+
+ py::class_<file_meta_source,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<file_meta_source>>(
+ m, "file_meta_source", D(file_meta_source))
+
+ .def(py::init(&file_meta_source::make),
+ py::arg("filename"),
+ py::arg("repeat") = false,
+ py::arg("detached_header") = false,
+ py::arg("hdr_filename") = "",
+ D(file_meta_source, make))
+
+
+ .def("open",
+ &file_meta_source::open,
+ py::arg("filename"),
+ py::arg("hdr_filename") = "",
+ D(file_meta_source, open))
+
+
+ .def("close", &file_meta_source::close, D(file_meta_source, close))
+
+
+ .def("do_update", &file_meta_source::do_update, D(file_meta_source, do_update))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/file_sink_base_python.cc b/gr-blocks/python/blocks/bindings/file_sink_base_python.cc
new file mode 100644
index 0000000000..be32f5f5fc
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/file_sink_base_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/blocks/file_sink_base.h>
+// pydoc.h is automatically generated in the build directory
+#include <file_sink_base_pydoc.h>
+
+void bind_file_sink_base(py::module& m)
+{
+
+ using file_sink_base = ::gr::blocks::file_sink_base;
+
+
+ py::class_<file_sink_base, std::shared_ptr<file_sink_base>>(
+ m, "file_sink_base", D(file_sink_base))
+
+ .def(py::init<>(), D(file_sink_base, file_sink_base))
+
+
+ .def("open", &file_sink_base::open, py::arg("filename"), D(file_sink_base, open))
+
+
+ .def("close", &file_sink_base::close, D(file_sink_base, close))
+
+
+ .def("do_update", &file_sink_base::do_update, D(file_sink_base, do_update))
+
+
+ .def("set_unbuffered",
+ &file_sink_base::set_unbuffered,
+ py::arg("unbuffered"),
+ D(file_sink_base, set_unbuffered))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/file_sink_python.cc b/gr-blocks/python/blocks/bindings/file_sink_python.cc
new file mode 100644
index 0000000000..0d8e9c0d73
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/file_sink_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/file_sink.h>
+// pydoc.h is automatically generated in the build directory
+#include <file_sink_pydoc.h>
+
+void bind_file_sink(py::module& m)
+{
+
+ using file_sink = ::gr::blocks::file_sink;
+
+
+ py::class_<file_sink,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ gr::blocks::file_sink_base,
+ std::shared_ptr<file_sink>>(m, "file_sink", D(file_sink))
+
+ .def(py::init(&file_sink::make),
+ py::arg("itemsize"),
+ py::arg("filename"),
+ py::arg("append") = false,
+ D(file_sink, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/file_source_python.cc b/gr-blocks/python/blocks/bindings/file_source_python.cc
new file mode 100644
index 0000000000..9be988fbb7
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/file_source_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/blocks/file_source.h>
+// pydoc.h is automatically generated in the build directory
+#include <file_source_pydoc.h>
+
+void bind_file_source(py::module& m)
+{
+
+ using file_source = ::gr::blocks::file_source;
+
+
+ py::class_<file_source,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<file_source>>(m, "file_source", D(file_source))
+
+ .def(py::init(&file_source::make),
+ py::arg("itemsize"),
+ py::arg("filename"),
+ py::arg("repeat") = false,
+ py::arg("offset") = 0,
+ py::arg("len") = 0,
+ D(file_source, make))
+
+
+ .def("seek",
+ &file_source::seek,
+ py::arg("seek_point"),
+ py::arg("whence"),
+ D(file_source, seek))
+
+
+ .def("open",
+ &file_source::open,
+ py::arg("filename"),
+ py::arg("repeat"),
+ py::arg("offset") = 0,
+ py::arg("len") = 0,
+ D(file_source, open))
+
+
+ .def("close", &file_source::close, D(file_source, close))
+
+
+ .def("set_begin_tag",
+ &file_source::set_begin_tag,
+ py::arg("val"),
+ D(file_source, set_begin_tag))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/float_to_char_python.cc b/gr-blocks/python/blocks/bindings/float_to_char_python.cc
new file mode 100644
index 0000000000..5867af985d
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/float_to_char_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/blocks/float_to_char.h>
+// pydoc.h is automatically generated in the build directory
+#include <float_to_char_pydoc.h>
+
+void bind_float_to_char(py::module& m)
+{
+
+ using float_to_char = ::gr::blocks::float_to_char;
+
+
+ py::class_<float_to_char,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<float_to_char>>(m, "float_to_char", D(float_to_char))
+
+ .def(py::init(&float_to_char::make),
+ py::arg("vlen") = 1,
+ py::arg("scale") = 1.,
+ D(float_to_char, make))
+
+
+ .def("scale", &float_to_char::scale, D(float_to_char, scale))
+
+
+ .def("set_scale",
+ &float_to_char::set_scale,
+ py::arg("scale"),
+ D(float_to_char, set_scale))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/float_to_complex_python.cc b/gr-blocks/python/blocks/bindings/float_to_complex_python.cc
new file mode 100644
index 0000000000..ed6a99f117
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/float_to_complex_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/float_to_complex.h>
+// pydoc.h is automatically generated in the build directory
+#include <float_to_complex_pydoc.h>
+
+void bind_float_to_complex(py::module& m)
+{
+
+ using float_to_complex = ::gr::blocks::float_to_complex;
+
+
+ py::class_<float_to_complex,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<float_to_complex>>(
+ m, "float_to_complex", D(float_to_complex))
+
+ .def(py::init(&float_to_complex::make),
+ py::arg("vlen") = 1,
+ D(float_to_complex, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/float_to_int_python.cc b/gr-blocks/python/blocks/bindings/float_to_int_python.cc
new file mode 100644
index 0000000000..eee99412c9
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/float_to_int_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/blocks/float_to_int.h>
+// pydoc.h is automatically generated in the build directory
+#include <float_to_int_pydoc.h>
+
+void bind_float_to_int(py::module& m)
+{
+
+ using float_to_int = ::gr::blocks::float_to_int;
+
+
+ py::class_<float_to_int,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<float_to_int>>(m, "float_to_int", D(float_to_int))
+
+ .def(py::init(&float_to_int::make),
+ py::arg("vlen") = 1,
+ py::arg("scale") = 1.,
+ D(float_to_int, make))
+
+
+ .def("scale", &float_to_int::scale, D(float_to_int, scale))
+
+
+ .def("set_scale",
+ &float_to_int::set_scale,
+ py::arg("scale"),
+ D(float_to_int, set_scale))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/float_to_short_python.cc b/gr-blocks/python/blocks/bindings/float_to_short_python.cc
new file mode 100644
index 0000000000..2fc2d4de18
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/float_to_short_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/blocks/float_to_short.h>
+// pydoc.h is automatically generated in the build directory
+#include <float_to_short_pydoc.h>
+
+void bind_float_to_short(py::module& m)
+{
+
+ using float_to_short = ::gr::blocks::float_to_short;
+
+
+ py::class_<float_to_short,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<float_to_short>>(m, "float_to_short", D(float_to_short))
+
+ .def(py::init(&float_to_short::make),
+ py::arg("vlen") = 1,
+ py::arg("scale") = 1.,
+ D(float_to_short, make))
+
+
+ .def("scale", &float_to_short::scale, D(float_to_short, scale))
+
+
+ .def("set_scale",
+ &float_to_short::set_scale,
+ py::arg("scale"),
+ D(float_to_short, set_scale))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/float_to_uchar_python.cc b/gr-blocks/python/blocks/bindings/float_to_uchar_python.cc
new file mode 100644
index 0000000000..a4175f2d25
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/float_to_uchar_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/blocks/float_to_uchar.h>
+// pydoc.h is automatically generated in the build directory
+#include <float_to_uchar_pydoc.h>
+
+void bind_float_to_uchar(py::module& m)
+{
+
+ using float_to_uchar = ::gr::blocks::float_to_uchar;
+
+
+ py::class_<float_to_uchar,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<float_to_uchar>>(m, "float_to_uchar", D(float_to_uchar))
+
+ .def(py::init(&float_to_uchar::make), D(float_to_uchar, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/head_python.cc b/gr-blocks/python/blocks/bindings/head_python.cc
new file mode 100644
index 0000000000..dfe09163c2
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/head_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/head.h>
+// pydoc.h is automatically generated in the build directory
+#include <head_pydoc.h>
+
+void bind_head(py::module& m)
+{
+
+ using head = ::gr::blocks::head;
+
+
+ py::class_<head, gr::sync_block, gr::block, gr::basic_block, std::shared_ptr<head>>(
+ m, "head", D(head))
+
+ .def(py::init(&head::make),
+ py::arg("sizeof_stream_item"),
+ py::arg("nitems"),
+ D(head, make))
+
+
+ .def("reset", &head::reset, D(head, reset))
+
+
+ .def("set_length", &head::set_length, py::arg("nitems"), D(head, set_length))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/int_to_float_python.cc b/gr-blocks/python/blocks/bindings/int_to_float_python.cc
new file mode 100644
index 0000000000..465ca3264e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/int_to_float_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/blocks/int_to_float.h>
+// pydoc.h is automatically generated in the build directory
+#include <int_to_float_pydoc.h>
+
+void bind_int_to_float(py::module& m)
+{
+
+ using int_to_float = ::gr::blocks::int_to_float;
+
+
+ py::class_<int_to_float,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<int_to_float>>(m, "int_to_float", D(int_to_float))
+
+ .def(py::init(&int_to_float::make),
+ py::arg("vlen") = 1,
+ py::arg("scale") = 1.,
+ D(int_to_float, make))
+
+
+ .def("scale", &int_to_float::scale, D(int_to_float, scale))
+
+
+ .def("set_scale",
+ &int_to_float::set_scale,
+ py::arg("scale"),
+ D(int_to_float, set_scale))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/integrate_python.cc b/gr-blocks/python/blocks/bindings/integrate_python.cc
new file mode 100644
index 0000000000..19222e5c2f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/integrate_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/blocks/integrate.h>
+
+template <typename T>
+void bind_integrate_template(py::module& m, const char* classname)
+{
+ using integrate = gr::blocks::integrate<T>;
+
+ py::class_<integrate,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<integrate>>(m, classname)
+ .def(py::init(&gr::blocks::integrate<T>::make),
+ py::arg("decim"),
+ py::arg("vlen") = 1);
+}
+
+void bind_integrate(py::module& m)
+{
+ bind_integrate_template<std::int16_t>(m, "integrate_ss");
+ bind_integrate_template<std::int32_t>(m, "integrate_ii");
+ bind_integrate_template<float>(m, "integrate_ff");
+ bind_integrate_template<gr_complex>(m, "integrate_cc");
+}
diff --git a/gr-blocks/python/blocks/bindings/interleave_python.cc b/gr-blocks/python/blocks/bindings/interleave_python.cc
new file mode 100644
index 0000000000..ec761dd1cc
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/interleave_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/blocks/interleave.h>
+// pydoc.h is automatically generated in the build directory
+#include <interleave_pydoc.h>
+
+void bind_interleave(py::module& m)
+{
+
+ using interleave = ::gr::blocks::interleave;
+
+
+ py::class_<interleave, gr::block, gr::basic_block, std::shared_ptr<interleave>>(
+ m, "interleave", D(interleave))
+
+ .def(py::init(&interleave::make),
+ py::arg("itemsize"),
+ py::arg("blocksize") = 1,
+ D(interleave, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/interleaved_char_to_complex_python.cc b/gr-blocks/python/blocks/bindings/interleaved_char_to_complex_python.cc
new file mode 100644
index 0000000000..b807a2bcf0
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/interleaved_char_to_complex_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/blocks/interleaved_char_to_complex.h>
+// pydoc.h is automatically generated in the build directory
+#include <interleaved_char_to_complex_pydoc.h>
+
+void bind_interleaved_char_to_complex(py::module& m)
+{
+
+ using interleaved_char_to_complex = ::gr::blocks::interleaved_char_to_complex;
+
+
+ py::class_<interleaved_char_to_complex,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<interleaved_char_to_complex>>(
+ m, "interleaved_char_to_complex", D(interleaved_char_to_complex))
+
+ .def(py::init(&interleaved_char_to_complex::make),
+ py::arg("vector_input") = false,
+ py::arg("scale_factor") = 1.F,
+ D(interleaved_char_to_complex, make))
+
+
+ .def("set_scale_factor",
+ &interleaved_char_to_complex::set_scale_factor,
+ py::arg("new_value"),
+ D(interleaved_char_to_complex, set_scale_factor))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/interleaved_short_to_complex_python.cc b/gr-blocks/python/blocks/bindings/interleaved_short_to_complex_python.cc
new file mode 100644
index 0000000000..d5af0700e0
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/interleaved_short_to_complex_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/blocks/interleaved_short_to_complex.h>
+// pydoc.h is automatically generated in the build directory
+#include <interleaved_short_to_complex_pydoc.h>
+
+void bind_interleaved_short_to_complex(py::module& m)
+{
+
+ using interleaved_short_to_complex = ::gr::blocks::interleaved_short_to_complex;
+
+
+ py::class_<interleaved_short_to_complex,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<interleaved_short_to_complex>>(
+ m, "interleaved_short_to_complex", D(interleaved_short_to_complex))
+
+ .def(py::init(&interleaved_short_to_complex::make),
+ py::arg("vector_input") = false,
+ py::arg("swap") = false,
+ py::arg("scale_factor") = 1.F,
+ D(interleaved_short_to_complex, make))
+
+
+ .def("set_swap",
+ &interleaved_short_to_complex::set_swap,
+ py::arg("swap"),
+ D(interleaved_short_to_complex, set_swap))
+
+
+ .def("set_scale_factor",
+ &interleaved_short_to_complex::set_scale_factor,
+ py::arg("new_value"),
+ D(interleaved_short_to_complex, set_scale_factor))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/keep_m_in_n_python.cc b/gr-blocks/python/blocks/bindings/keep_m_in_n_python.cc
new file mode 100644
index 0000000000..4ce202ba52
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/keep_m_in_n_python.cc
@@ -0,0 +1,51 @@
+/*
+ * 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/blocks/keep_m_in_n.h>
+// pydoc.h is automatically generated in the build directory
+#include <keep_m_in_n_pydoc.h>
+
+void bind_keep_m_in_n(py::module& m)
+{
+
+ using keep_m_in_n = ::gr::blocks::keep_m_in_n;
+
+
+ py::class_<keep_m_in_n, gr::block, gr::basic_block, std::shared_ptr<keep_m_in_n>>(
+ m, "keep_m_in_n", D(keep_m_in_n))
+
+ .def(py::init(&keep_m_in_n::make),
+ py::arg("itemsize"),
+ py::arg("m"),
+ py::arg("n"),
+ py::arg("offset"),
+ D(keep_m_in_n, make))
+
+
+ .def("set_m", &keep_m_in_n::set_m, py::arg("m"), D(keep_m_in_n, set_m))
+
+
+ .def("set_n", &keep_m_in_n::set_n, py::arg("n"), D(keep_m_in_n, set_n))
+
+
+ .def("set_offset",
+ &keep_m_in_n::set_offset,
+ py::arg("offset"),
+ D(keep_m_in_n, set_offset))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/keep_one_in_n_python.cc b/gr-blocks/python/blocks/bindings/keep_one_in_n_python.cc
new file mode 100644
index 0000000000..a85e478bc0
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/keep_one_in_n_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/keep_one_in_n.h>
+// pydoc.h is automatically generated in the build directory
+#include <keep_one_in_n_pydoc.h>
+
+void bind_keep_one_in_n(py::module& m)
+{
+
+ using keep_one_in_n = ::gr::blocks::keep_one_in_n;
+
+
+ py::class_<keep_one_in_n, gr::block, gr::basic_block, std::shared_ptr<keep_one_in_n>>(
+ m, "keep_one_in_n", D(keep_one_in_n))
+
+ .def(py::init(&keep_one_in_n::make),
+ py::arg("itemsize"),
+ py::arg("n"),
+ D(keep_one_in_n, make))
+
+
+ .def("set_n", &keep_one_in_n::set_n, py::arg("n"), D(keep_one_in_n, set_n))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/lfsr_15_1_0_python.cc b/gr-blocks/python/blocks/bindings/lfsr_15_1_0_python.cc
new file mode 100644
index 0000000000..df9026eb49
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/lfsr_15_1_0_python.cc
@@ -0,0 +1,46 @@
+/*
+ * 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/blocks/lfsr_15_1_0.h>
+// pydoc.h is automatically generated in the build directory
+#include <lfsr_15_1_0_pydoc.h>
+
+void bind_lfsr_15_1_0(py::module& m)
+{
+
+ using lfsr_15_1_0 = ::gr::blocks::lfsr_15_1_0;
+
+
+ py::class_<lfsr_15_1_0, std::shared_ptr<lfsr_15_1_0>>(
+ m, "lfsr_15_1_0", D(lfsr_15_1_0))
+
+ .def(py::init<>(), D(lfsr_15_1_0, lfsr_15_1_0, 0))
+ .def(py::init<gr::blocks::lfsr_15_1_0 const&>(),
+ py::arg("arg0"),
+ D(lfsr_15_1_0, lfsr_15_1_0, 1))
+
+
+ .def("reset", &lfsr_15_1_0::reset, D(lfsr_15_1_0, reset))
+
+
+ .def("next_bit", &lfsr_15_1_0::next_bit, D(lfsr_15_1_0, next_bit))
+
+
+ .def("next_byte", &lfsr_15_1_0::next_byte, D(lfsr_15_1_0, next_byte))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/lfsr_32k_python.cc b/gr-blocks/python/blocks/bindings/lfsr_32k_python.cc
new file mode 100644
index 0000000000..92816f0e26
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/lfsr_32k_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/blocks/lfsr_32k.h>
+// pydoc.h is automatically generated in the build directory
+#include <lfsr_32k_pydoc.h>
+
+void bind_lfsr_32k(py::module& m)
+{
+
+ using lfsr_32k = ::gr::blocks::lfsr_32k;
+
+
+ py::class_<lfsr_32k, std::shared_ptr<lfsr_32k>>(m, "lfsr_32k", D(lfsr_32k))
+
+ .def(py::init<>(), D(lfsr_32k, lfsr_32k, 0))
+ .def(py::init<gr::blocks::lfsr_32k const&>(),
+ py::arg("arg0"),
+ D(lfsr_32k, lfsr_32k, 1))
+
+
+ .def("reset", &lfsr_32k::reset, D(lfsr_32k, reset))
+
+
+ .def("next_bit", &lfsr_32k::next_bit, D(lfsr_32k, next_bit))
+
+
+ .def("next_byte", &lfsr_32k::next_byte, D(lfsr_32k, next_byte))
+
+
+ .def("next_short", &lfsr_32k::next_short, D(lfsr_32k, next_short))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/lfsr_32k_source_s_python.cc b/gr-blocks/python/blocks/bindings/lfsr_32k_source_s_python.cc
new file mode 100644
index 0000000000..e911e80f00
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/lfsr_32k_source_s_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/lfsr_32k_source_s.h>
+// pydoc.h is automatically generated in the build directory
+#include <lfsr_32k_source_s_pydoc.h>
+
+void bind_lfsr_32k_source_s(py::module& m)
+{
+
+ using lfsr_32k_source_s = ::gr::blocks::lfsr_32k_source_s;
+
+
+ py::class_<lfsr_32k_source_s,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<lfsr_32k_source_s>>(
+ m, "lfsr_32k_source_s", D(lfsr_32k_source_s))
+
+ .def(py::init(&lfsr_32k_source_s::make), D(lfsr_32k_source_s, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/log2_const_python.cc b/gr-blocks/python/blocks/bindings/log2_const_python.cc
new file mode 100644
index 0000000000..1f560fd08e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/log2_const_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/blocks/log2_const.h>
+
+void bind_log2_const(py::module& m)
+{
+
+
+ m.def("log2_const", &gr::blocks::log2_const);
+ m.def("log2_const", &gr::blocks::log2_const);
+ m.def("log2_const", &gr::blocks::log2_const);
+ m.def("log2_const", &gr::blocks::log2_const);
+ m.def("log2_const", &gr::blocks::log2_const);
+ m.def("log2_const", &gr::blocks::log2_const);
+ m.def("log2_const", &gr::blocks::log2_const);
+ m.def("log2_const", &gr::blocks::log2_const);
+ m.def("log2_const", &gr::blocks::log2_const);
+ m.def("log2_const", &gr::blocks::log2_const);
+ m.def("log2_const", &gr::blocks::log2_const);
+}
diff --git a/gr-blocks/python/blocks/bindings/magphase_to_complex_python.cc b/gr-blocks/python/blocks/bindings/magphase_to_complex_python.cc
new file mode 100644
index 0000000000..9a3202f17e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/magphase_to_complex_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/magphase_to_complex.h>
+// pydoc.h is automatically generated in the build directory
+#include <magphase_to_complex_pydoc.h>
+
+void bind_magphase_to_complex(py::module& m)
+{
+
+ using magphase_to_complex = ::gr::blocks::magphase_to_complex;
+
+
+ py::class_<magphase_to_complex,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<magphase_to_complex>>(
+ m, "magphase_to_complex", D(magphase_to_complex))
+
+ .def(py::init(&magphase_to_complex::make),
+ py::arg("vlen") = 1,
+ D(magphase_to_complex, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/max_blk_python.cc b/gr-blocks/python/blocks/bindings/max_blk_python.cc
new file mode 100644
index 0000000000..aff72652ca
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/max_blk_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/max_blk.h>
+
+template <typename T>
+void bind_max_blk_template(py::module& m, const char* classname)
+{
+ using max_blk = gr::blocks::max_blk<T>;
+
+ py::class_<max_blk,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<max_blk>>(m, classname)
+ .def(py::init(&gr::blocks::max_blk<T>::make),
+ py::arg("vlen"),
+ py::arg("vlen_out") = 1);
+}
+
+void bind_max_blk(py::module& m)
+{
+ bind_max_blk_template<std::int16_t>(m, "max_ss");
+ bind_max_blk_template<std::int32_t>(m, "max_ii");
+ bind_max_blk_template<float>(m, "max_ff");
+}
diff --git a/gr-blocks/python/blocks/bindings/message_debug_python.cc b/gr-blocks/python/blocks/bindings/message_debug_python.cc
new file mode 100644
index 0000000000..198a14c1cb
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/message_debug_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/message_debug.h>
+// pydoc.h is automatically generated in the build directory
+#include <message_debug_pydoc.h>
+
+void bind_message_debug(py::module& m)
+{
+
+ using message_debug = ::gr::blocks::message_debug;
+
+
+ py::class_<message_debug, gr::block, gr::basic_block, std::shared_ptr<message_debug>>(
+ m, "message_debug", D(message_debug))
+
+ .def(py::init(&message_debug::make), D(message_debug, make))
+
+
+ .def("num_messages", &message_debug::num_messages, D(message_debug, num_messages))
+
+
+ .def("get_message",
+ &message_debug::get_message,
+ py::arg("i"),
+ D(message_debug, get_message))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/message_strobe_python.cc b/gr-blocks/python/blocks/bindings/message_strobe_python.cc
new file mode 100644
index 0000000000..e66bf20a1a
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/message_strobe_python.cc
@@ -0,0 +1,57 @@
+/*
+ * 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/blocks/message_strobe.h>
+// pydoc.h is automatically generated in the build directory
+#include <message_strobe_pydoc.h>
+
+void bind_message_strobe(py::module& m)
+{
+
+ using message_strobe = ::gr::blocks::message_strobe;
+
+
+ py::class_<message_strobe,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<message_strobe>>(m, "message_strobe", D(message_strobe))
+
+ .def(py::init(&message_strobe::make),
+ py::arg("msg"),
+ py::arg("period_ms"),
+ D(message_strobe, make))
+
+
+ .def("set_msg",
+ &message_strobe::set_msg,
+ py::arg("msg"),
+ D(message_strobe, set_msg))
+
+
+ .def("msg", &message_strobe::msg, D(message_strobe, msg))
+
+
+ .def("set_period",
+ &message_strobe::set_period,
+ py::arg("period_ms"),
+ D(message_strobe, set_period))
+
+
+ .def("period", &message_strobe::period, D(message_strobe, period))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/message_strobe_random_python.cc b/gr-blocks/python/blocks/bindings/message_strobe_random_python.cc
new file mode 100644
index 0000000000..ecdf511331
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/message_strobe_random_python.cc
@@ -0,0 +1,85 @@
+/*
+ * 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/blocks/message_strobe_random.h>
+// pydoc.h is automatically generated in the build directory
+#include <message_strobe_random_pydoc.h>
+
+void bind_message_strobe_random(py::module& m)
+{
+
+ using message_strobe_random = ::gr::blocks::message_strobe_random;
+
+
+ py::class_<message_strobe_random,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<message_strobe_random>>(
+ m, "message_strobe_random", D(message_strobe_random))
+
+ .def(py::init(&message_strobe_random::make),
+ py::arg("msg"),
+ py::arg("dist"),
+ py::arg("mean_ms"),
+ py::arg("std_ms"),
+ D(message_strobe_random, make))
+
+
+ .def("set_msg",
+ &message_strobe_random::set_msg,
+ py::arg("msg"),
+ D(message_strobe_random, set_msg))
+
+
+ .def("msg", &message_strobe_random::msg, D(message_strobe_random, msg))
+
+
+ .def("set_dist",
+ &message_strobe_random::set_dist,
+ py::arg("dist"),
+ D(message_strobe_random, set_dist))
+
+
+ .def("dist", &message_strobe_random::dist, D(message_strobe_random, dist))
+
+
+ .def("set_mean",
+ &message_strobe_random::set_mean,
+ py::arg("mean"),
+ D(message_strobe_random, set_mean))
+
+
+ .def("mean", &message_strobe_random::mean, D(message_strobe_random, mean))
+
+
+ .def("set_std",
+ &message_strobe_random::set_std,
+ py::arg("std"),
+ D(message_strobe_random, set_std))
+
+
+ .def("std", &message_strobe_random::std, D(message_strobe_random, std))
+
+ ;
+
+ py::enum_<::gr::blocks::message_strobe_random_distribution_t>(
+ m, "message_strobe_random_distribution_t")
+ .value("STROBE_POISSON", ::gr::blocks::STROBE_POISSON) // 1
+ .value("STROBE_GAUSSIAN", ::gr::blocks::STROBE_GAUSSIAN) // 2
+ .value("STROBE_UNIFORM", ::gr::blocks::STROBE_UNIFORM) // 3
+ .export_values();
+}
diff --git a/gr-blocks/python/blocks/bindings/min_blk_python.cc b/gr-blocks/python/blocks/bindings/min_blk_python.cc
new file mode 100644
index 0000000000..2c9b02668e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/min_blk_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/min_blk.h>
+
+template <typename T>
+void bind_min_blk_template(py::module& m, const char* classname)
+{
+ using min_blk = gr::blocks::min_blk<T>;
+
+ py::class_<min_blk,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<min_blk>>(m, classname)
+ .def(py::init(&gr::blocks::min_blk<T>::make),
+ py::arg("vlen"),
+ py::arg("vlen_out") = 1);
+}
+
+void bind_min_blk(py::module& m)
+{
+ bind_min_blk_template<std::int16_t>(m, "min_ss");
+ bind_min_blk_template<std::int32_t>(m, "min_ii");
+ bind_min_blk_template<float>(m, "min_ff");
+}
diff --git a/gr-blocks/python/blocks/bindings/moving_average_python.cc b/gr-blocks/python/blocks/bindings/moving_average_python.cc
new file mode 100644
index 0000000000..3576ae8420
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/moving_average_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/blocks/moving_average.h>
+
+template <typename T>
+void bind_moving_average_template(py::module& m, const char* classname)
+{
+ using moving_average = gr::blocks::moving_average<T>;
+
+ py::class_<moving_average,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<moving_average>>(m, classname)
+ .def(py::init(&gr::blocks::moving_average<T>::make),
+ py::arg("length"),
+ py::arg("scale"),
+ py::arg("max_iter") = 4096,
+ py::arg("vlen") = 1)
+ .def("length", &moving_average::length)
+ .def("scale", &moving_average::scale)
+ .def("set_length_and_scale",
+ &moving_average::set_length_and_scale,
+ py::arg("length"),
+ py::arg("scale"))
+ .def("set_length", &moving_average::set_length, py::arg("length"))
+ .def("set_scale", &moving_average::set_scale, py::arg("scale"));
+}
+
+
+void bind_moving_average(py::module& m)
+{
+ bind_moving_average_template<std::int16_t>(m, "moving_average_ss");
+ bind_moving_average_template<std::int32_t>(m, "moving_average_ii");
+ bind_moving_average_template<float>(m, "moving_average_ff");
+ bind_moving_average_template<gr_complex>(m, "moving_average_cc");
+}
diff --git a/gr-blocks/python/blocks/bindings/multiply_by_tag_value_cc_python.cc b/gr-blocks/python/blocks/bindings/multiply_by_tag_value_cc_python.cc
new file mode 100644
index 0000000000..3f07b7bb67
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/multiply_by_tag_value_cc_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/multiply_by_tag_value_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <multiply_by_tag_value_cc_pydoc.h>
+
+void bind_multiply_by_tag_value_cc(py::module& m)
+{
+
+ using multiply_by_tag_value_cc = ::gr::blocks::multiply_by_tag_value_cc;
+
+
+ py::class_<multiply_by_tag_value_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<multiply_by_tag_value_cc>>(
+ m, "multiply_by_tag_value_cc", D(multiply_by_tag_value_cc))
+
+ .def(py::init(&multiply_by_tag_value_cc::make),
+ py::arg("tag_name"),
+ py::arg("vlen") = 1,
+ D(multiply_by_tag_value_cc, make))
+
+
+ .def("k", &multiply_by_tag_value_cc::k, D(multiply_by_tag_value_cc, k))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/multiply_conjugate_cc_python.cc b/gr-blocks/python/blocks/bindings/multiply_conjugate_cc_python.cc
new file mode 100644
index 0000000000..04bd0bb376
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/multiply_conjugate_cc_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/multiply_conjugate_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <multiply_conjugate_cc_pydoc.h>
+
+void bind_multiply_conjugate_cc(py::module& m)
+{
+
+ using multiply_conjugate_cc = ::gr::blocks::multiply_conjugate_cc;
+
+
+ py::class_<multiply_conjugate_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<multiply_conjugate_cc>>(
+ m, "multiply_conjugate_cc", D(multiply_conjugate_cc))
+
+ .def(py::init(&multiply_conjugate_cc::make),
+ py::arg("vlen") = 1,
+ D(multiply_conjugate_cc, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/multiply_const_python.cc b/gr-blocks/python/blocks/bindings/multiply_const_python.cc
new file mode 100644
index 0000000000..e416b18694
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/multiply_const_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/multiply_const.h>
+
+template <typename T>
+void bind_multiply_const_template(py::module& m, const char* classname)
+{
+ using multiply_const = gr::blocks::multiply_const<T>;
+
+ py::class_<multiply_const,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<multiply_const>>(m, classname)
+ .def(py::init(&gr::blocks::multiply_const<T>::make),
+ py::arg("k"),
+ py::arg("vlen") = 1)
+ .def("k", &multiply_const::k)
+ .def("set_k", &multiply_const::set_k, py::arg("k"));
+}
+
+void bind_multiply_const(py::module& m)
+{
+ bind_multiply_const_template<std::int16_t>(m, "multiply_const_ss");
+ bind_multiply_const_template<std::int32_t>(m, "multiply_const_ii");
+ bind_multiply_const_template<float>(m, "multiply_const_ff");
+ bind_multiply_const_template<gr_complex>(m, "multiply_const_cc");
+}
diff --git a/gr-blocks/python/blocks/bindings/multiply_const_v_python.cc b/gr-blocks/python/blocks/bindings/multiply_const_v_python.cc
new file mode 100644
index 0000000000..28bdcf4421
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/multiply_const_v_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/multiply_const_v.h>
+
+template <typename T>
+void bind_multiply_const_v_template(py::module& m, const char* classname)
+{
+ using multiply_const_v = gr::blocks::multiply_const_v<T>;
+
+ py::class_<multiply_const_v,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<multiply_const_v>>(m, classname)
+ .def(py::init(&gr::blocks::multiply_const_v<T>::make));
+}
+
+void bind_multiply_const_v(py::module& m)
+{
+ bind_multiply_const_v_template<std::int16_t>(m, "multiply_const_vss");
+ bind_multiply_const_v_template<std::int32_t>(m, "multiply_const_vii");
+ bind_multiply_const_v_template<float>(m, "multiply_const_vff");
+ bind_multiply_const_v_template<gr_complex>(m, "multiply_const_vcc");
+}
diff --git a/gr-blocks/python/blocks/bindings/multiply_matrix_python.cc b/gr-blocks/python/blocks/bindings/multiply_matrix_python.cc
new file mode 100644
index 0000000000..639584bfd1
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/multiply_matrix_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/blocks/multiply_matrix.h>
+
+template <typename T>
+void bind_multiply_matrix_template(py::module& m, const char* classname)
+{
+ using multiply_matrix = gr::blocks::multiply_matrix<T>;
+
+ py::class_<multiply_matrix,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<multiply_matrix>>(m, classname)
+ .def(py::init(&gr::blocks::multiply_matrix<T>::make),
+ py::arg("A"),
+ py::arg("tag_propagation_policy") = gr::block::TPP_ALL_TO_ALL)
+ .def("get_A", &multiply_matrix::get_A)
+ .def("set_A", &multiply_matrix::set_A, py::arg("new_A"))
+ .def_readwrite("MSG_PORT_NAME_SET_A", &multiply_matrix::MSG_PORT_NAME_SET_A);
+}
+
+void bind_multiply_matrix(py::module& m)
+{
+ bind_multiply_matrix_template<float>(m, "multiply_matrix_ff");
+ bind_multiply_matrix_template<gr_complex>(m, "multiply_matrix_cc");
+}
diff --git a/gr-blocks/python/blocks/bindings/multiply_python.cc b/gr-blocks/python/blocks/bindings/multiply_python.cc
new file mode 100644
index 0000000000..ae90a54cca
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/multiply_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/multiply.h>
+
+template <typename T>
+void bind_multiply_template(py::module& m, const char* classname)
+{
+ using multiply = gr::blocks::multiply<T>;
+
+ py::class_<multiply,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<multiply>>(m, classname)
+ .def(py::init(&gr::blocks::multiply<T>::make), py::arg("vlen") = 1);
+}
+
+void bind_multiply(py::module& m)
+{
+ bind_multiply_template<std::int16_t>(m, "multiply_ss");
+ bind_multiply_template<std::int32_t>(m, "multiply_ii");
+ bind_multiply_template<float>(m, "multiply_ff");
+ bind_multiply_template<gr_complex>(m, "multiply_cc");
+}
diff --git a/gr-blocks/python/blocks/bindings/mute_python.cc b/gr-blocks/python/blocks/bindings/mute_python.cc
new file mode 100644
index 0000000000..c77620c76c
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/mute_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/mute.h>
+
+template <typename T>
+void bind_mute_template(py::module& m, const char* classname)
+{
+ using mute_blk = gr::blocks::mute_blk<T>;
+
+ py::class_<mute_blk,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<mute_blk>>(m, classname)
+ .def(py::init(&gr::blocks::mute_blk<T>::make), py::arg("mute") = false)
+ .def("mute", &mute_blk::mute)
+ .def("set_mute", &mute_blk::set_mute, py::arg("mute") = false);
+}
+
+void bind_mute(py::module& m)
+{
+ bind_mute_template<std::int16_t>(m, "mute_ss");
+ bind_mute_template<std::int32_t>(m, "mute_ii");
+ bind_mute_template<float>(m, "mute_ff");
+ bind_mute_template<gr_complex>(m, "mute_cc");
+}
diff --git a/gr-blocks/python/blocks/bindings/nlog10_ff_python.cc b/gr-blocks/python/blocks/bindings/nlog10_ff_python.cc
new file mode 100644
index 0000000000..d9e55f478a
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/nlog10_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/blocks/nlog10_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <nlog10_ff_pydoc.h>
+
+void bind_nlog10_ff(py::module& m)
+{
+
+ using nlog10_ff = ::gr::blocks::nlog10_ff;
+
+
+ py::class_<nlog10_ff,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<nlog10_ff>>(m, "nlog10_ff", D(nlog10_ff))
+
+ .def(py::init(&nlog10_ff::make),
+ py::arg("n") = 1.,
+ py::arg("vlen") = 1,
+ py::arg("k") = 0.,
+ D(nlog10_ff, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/nop_python.cc b/gr-blocks/python/blocks/bindings/nop_python.cc
new file mode 100644
index 0000000000..1d23f4cb82
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/nop_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/blocks/nop.h>
+// pydoc.h is automatically generated in the build directory
+#include <nop_pydoc.h>
+
+void bind_nop(py::module& m)
+{
+
+ using nop = ::gr::blocks::nop;
+
+
+ py::class_<nop, gr::block, gr::basic_block, std::shared_ptr<nop>>(m, "nop", D(nop))
+
+ .def(py::init(&nop::make), py::arg("sizeof_stream_item"), D(nop, make))
+
+
+ .def("nmsgs_received", &nop::nmsgs_received, D(nop, nmsgs_received))
+
+
+ .def("ctrlport_test", &nop::ctrlport_test, D(nop, ctrlport_test))
+
+
+ .def("set_ctrlport_test",
+ &nop::set_ctrlport_test,
+ py::arg("x"),
+ D(nop, set_ctrlport_test))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/not_blk_python.cc b/gr-blocks/python/blocks/bindings/not_blk_python.cc
new file mode 100644
index 0000000000..b40279f43c
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/not_blk_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/blocks/not_blk.h>
+
+template <typename T>
+void bind_not_template(py::module& m, const char* classname)
+{
+ using not_blk = gr::blocks::not_blk<T>;
+
+ py::class_<not_blk,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<not_blk>>(m, classname)
+ .def(py::init(&gr::blocks::not_blk<T>::make), py::arg("vlen") = 1);
+}
+
+void bind_not_blk(py::module& m)
+{
+ bind_not_template<std::uint8_t>(m, "not_bb");
+ bind_not_template<std::int16_t>(m, "not_ss");
+ bind_not_template<std::int32_t>(m, "not_ii");
+}
diff --git a/gr-blocks/python/blocks/bindings/null_sink_python.cc b/gr-blocks/python/blocks/bindings/null_sink_python.cc
new file mode 100644
index 0000000000..de20c98155
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/null_sink_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/null_sink.h>
+// pydoc.h is automatically generated in the build directory
+#include <null_sink_pydoc.h>
+
+void bind_null_sink(py::module& m)
+{
+
+ using null_sink = ::gr::blocks::null_sink;
+
+
+ py::class_<null_sink,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<null_sink>>(m, "null_sink", D(null_sink))
+
+ .def(
+ py::init(&null_sink::make), py::arg("sizeof_stream_item"), D(null_sink, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/null_source_python.cc b/gr-blocks/python/blocks/bindings/null_source_python.cc
new file mode 100644
index 0000000000..bd1bd368bb
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/null_source_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/null_source.h>
+// pydoc.h is automatically generated in the build directory
+#include <null_source_pydoc.h>
+
+void bind_null_source(py::module& m)
+{
+
+ using null_source = ::gr::blocks::null_source;
+
+
+ py::class_<null_source,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<null_source>>(m, "null_source", D(null_source))
+
+ .def(py::init(&null_source::make),
+ py::arg("sizeof_stream_item"),
+ D(null_source, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/or_blk_python.cc b/gr-blocks/python/blocks/bindings/or_blk_python.cc
new file mode 100644
index 0000000000..5b71a8b118
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/or_blk_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/blocks/or_blk.h>
+
+template <typename T>
+void bind_or_blk_template(py::module& m, const char* classname)
+{
+ using or_blk = gr::blocks::or_blk<T>;
+
+ py::class_<or_blk,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<or_blk>>(m, classname)
+ .def(py::init(&gr::blocks::or_blk<T>::make), py::arg("vlen") = 1);
+}
+
+void bind_or_blk(py::module& m)
+{
+ bind_or_blk_template<std::uint8_t>(m, "or_bb");
+ bind_or_blk_template<std::int16_t>(m, "or_ss");
+ bind_or_blk_template<std::int32_t>(m, "or_ii");
+}
diff --git a/gr-blocks/python/blocks/bindings/pack_k_bits_bb_python.cc b/gr-blocks/python/blocks/bindings/pack_k_bits_bb_python.cc
new file mode 100644
index 0000000000..1d7fba7686
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/pack_k_bits_bb_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/pack_k_bits_bb.h>
+// pydoc.h is automatically generated in the build directory
+#include <pack_k_bits_bb_pydoc.h>
+
+void bind_pack_k_bits_bb(py::module& m)
+{
+
+ using pack_k_bits_bb = ::gr::blocks::pack_k_bits_bb;
+
+
+ py::class_<pack_k_bits_bb,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pack_k_bits_bb>>(m, "pack_k_bits_bb", D(pack_k_bits_bb))
+
+ .def(py::init(&pack_k_bits_bb::make), py::arg("k"), D(pack_k_bits_bb, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/pack_k_bits_python.cc b/gr-blocks/python/blocks/bindings/pack_k_bits_python.cc
new file mode 100644
index 0000000000..9a2cd1b4db
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/pack_k_bits_python.cc
@@ -0,0 +1,61 @@
+/*
+ * 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/blocks/pack_k_bits.h>
+// pydoc.h is automatically generated in the build directory
+#include <pack_k_bits_pydoc.h>
+
+void bind_pack_k_bits(py::module& m)
+{
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+
+ using pack_k_bits = ::gr::blocks::kernel::pack_k_bits;
+
+
+ py::class_<pack_k_bits, std::shared_ptr<pack_k_bits>>(
+ m_kernel, "pack_k_bits", D(kernel, pack_k_bits))
+
+ .def(py::init<unsigned int>(),
+ py::arg("k"),
+ D(kernel, pack_k_bits, pack_k_bits, 0))
+ .def(py::init<gr::blocks::kernel::pack_k_bits const&>(),
+ py::arg("arg0"),
+ D(kernel, pack_k_bits, pack_k_bits, 1))
+
+
+ .def("pack",
+ &pack_k_bits::pack,
+ py::arg("bytes"),
+ py::arg("bits"),
+ py::arg("nbytes"),
+ D(kernel, pack_k_bits, pack))
+
+
+ .def("pack_rev",
+ &pack_k_bits::pack_rev,
+ py::arg("bytes"),
+ py::arg("bits"),
+ py::arg("nbytes"),
+ D(kernel, pack_k_bits, pack_rev))
+
+
+ .def("k", &pack_k_bits::k, D(kernel, pack_k_bits, k))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/packed_to_unpacked_python.cc b/gr-blocks/python/blocks/bindings/packed_to_unpacked_python.cc
new file mode 100644
index 0000000000..3d0f27171a
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/packed_to_unpacked_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/packed_to_unpacked.h>
+
+template <typename T>
+void bind_packed_to_unpacked_template(py::module& m, const char* classname)
+{
+ using packed_to_unpacked = gr::blocks::packed_to_unpacked<T>;
+
+ py::class_<packed_to_unpacked,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<packed_to_unpacked>>(m, classname)
+ .def(py::init(&gr::blocks::packed_to_unpacked<T>::make),
+ py::arg("bits_per_chunk"),
+ py::arg("endianness"));
+}
+
+void bind_packed_to_unpacked(py::module& m)
+{
+ bind_packed_to_unpacked_template<std::uint8_t>(m, "packed_to_unpacked_bb");
+ bind_packed_to_unpacked_template<std::int16_t>(m, "packed_to_unpacked_ss");
+ bind_packed_to_unpacked_template<std::int32_t>(m, "packed_to_unpacked_ii");
+}
diff --git a/gr-blocks/python/blocks/bindings/patterned_interleaver_python.cc b/gr-blocks/python/blocks/bindings/patterned_interleaver_python.cc
new file mode 100644
index 0000000000..7a9b7de178
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/patterned_interleaver_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/patterned_interleaver.h>
+// pydoc.h is automatically generated in the build directory
+#include <patterned_interleaver_pydoc.h>
+
+void bind_patterned_interleaver(py::module& m)
+{
+
+ using patterned_interleaver = ::gr::blocks::patterned_interleaver;
+
+
+ py::class_<patterned_interleaver,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<patterned_interleaver>>(
+ m, "patterned_interleaver", D(patterned_interleaver))
+
+ .def(py::init(&patterned_interleaver::make),
+ py::arg("itemsize"),
+ py::arg("pattern"),
+ D(patterned_interleaver, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/pdu_filter_python.cc b/gr-blocks/python/blocks/bindings/pdu_filter_python.cc
new file mode 100644
index 0000000000..5dcb22494e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/pdu_filter_python.cc
@@ -0,0 +1,50 @@
+/*
+ * 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/blocks/pdu_filter.h>
+// pydoc.h is automatically generated in the build directory
+#include <pdu_filter_pydoc.h>
+
+void bind_pdu_filter(py::module& m)
+{
+
+ using pdu_filter = ::gr::blocks::pdu_filter;
+
+
+ py::class_<pdu_filter, gr::block, gr::basic_block, std::shared_ptr<pdu_filter>>(
+ m, "pdu_filter", D(pdu_filter))
+
+ .def(py::init(&pdu_filter::make),
+ py::arg("k"),
+ py::arg("v"),
+ py::arg("invert") = false,
+ D(pdu_filter, make))
+
+
+ .def("set_key", &pdu_filter::set_key, py::arg("key"), D(pdu_filter, set_key))
+
+
+ .def("set_val", &pdu_filter::set_val, py::arg("val"), D(pdu_filter, set_val))
+
+
+ .def("set_inversion",
+ &pdu_filter::set_inversion,
+ py::arg("invert"),
+ D(pdu_filter, set_inversion))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/pdu_python.cc b/gr-blocks/python/blocks/bindings/pdu_python.cc
new file mode 100644
index 0000000000..66f58e04ca
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/pdu_python.cc
@@ -0,0 +1,63 @@
+/*
+ * 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/blocks/pdu.h>
+// pydoc.h is automatically generated in the build directory
+#include <pdu_pydoc.h>
+
+void bind_pdu(py::module& m)
+{
+
+
+ py::module m_pdu = m.def_submodule("pdu");
+
+ // TODO - clean up pdu subnamespace -- should these enums go under pdu, or under
+ // blocks?
+ py::enum_<::gr::blocks::pdu::vector_type>(m, "vector_type")
+ .value("byte_t", ::gr::blocks::pdu::byte_t) // 0
+ .value("float_t", ::gr::blocks::pdu::float_t) // 1
+ .value("complex_t", ::gr::blocks::pdu::complex_t) // 2
+ .export_values();
+
+
+ m_pdu.def("pdu_port_id", &::gr::blocks::pdu::pdu_port_id, D(pdu, pdu_port_id));
+
+
+ m_pdu.def(
+ "itemsize", &::gr::blocks::pdu::itemsize, py::arg("type"), D(pdu, itemsize));
+
+
+ m_pdu.def("type_matches",
+ &::gr::blocks::pdu::type_matches,
+ py::arg("type"),
+ py::arg("v"),
+ D(pdu, type_matches));
+
+
+ m_pdu.def("make_pdu_vector",
+ &::gr::blocks::pdu::make_pdu_vector,
+ py::arg("type"),
+ py::arg("buf"),
+ py::arg("items"),
+ D(pdu, make_pdu_vector));
+
+
+ m_pdu.def("type_from_pmt",
+ &::gr::blocks::pdu::type_from_pmt,
+ py::arg("vector"),
+ D(pdu, type_from_pmt));
+}
diff --git a/gr-blocks/python/blocks/bindings/pdu_remove_python.cc b/gr-blocks/python/blocks/bindings/pdu_remove_python.cc
new file mode 100644
index 0000000000..1bb7cb3c18
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/pdu_remove_python.cc
@@ -0,0 +1,37 @@
+/*
+ * 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/blocks/pdu_remove.h>
+// pydoc.h is automatically generated in the build directory
+#include <pdu_remove_pydoc.h>
+
+void bind_pdu_remove(py::module& m)
+{
+
+ using pdu_remove = ::gr::blocks::pdu_remove;
+
+
+ py::class_<pdu_remove, gr::block, gr::basic_block, std::shared_ptr<pdu_remove>>(
+ m, "pdu_remove", D(pdu_remove))
+
+ .def(py::init(&pdu_remove::make), py::arg("k"), D(pdu_remove, make))
+
+
+ .def("set_key", &pdu_remove::set_key, py::arg("key"), D(pdu_remove, set_key))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/pdu_set_python.cc b/gr-blocks/python/blocks/bindings/pdu_set_python.cc
new file mode 100644
index 0000000000..218814e2ac
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/pdu_set_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/pdu_set.h>
+// pydoc.h is automatically generated in the build directory
+#include <pdu_set_pydoc.h>
+
+void bind_pdu_set(py::module& m)
+{
+
+ using pdu_set = ::gr::blocks::pdu_set;
+
+
+ py::class_<pdu_set, gr::block, gr::basic_block, std::shared_ptr<pdu_set>>(
+ m, "pdu_set", D(pdu_set))
+
+ .def(py::init(&pdu_set::make), py::arg("k"), py::arg("v"), D(pdu_set, make))
+
+
+ .def("set_key", &pdu_set::set_key, py::arg("key"), D(pdu_set, set_key))
+
+
+ .def("set_val", &pdu_set::set_val, py::arg("val"), D(pdu_set, set_val))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/pdu_to_tagged_stream_python.cc b/gr-blocks/python/blocks/bindings/pdu_to_tagged_stream_python.cc
new file mode 100644
index 0000000000..37c444bf2f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/pdu_to_tagged_stream_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/blocks/pdu_to_tagged_stream.h>
+// pydoc.h is automatically generated in the build directory
+#include <pdu_to_tagged_stream_pydoc.h>
+
+void bind_pdu_to_tagged_stream(py::module& m)
+{
+
+ using pdu_to_tagged_stream = ::gr::blocks::pdu_to_tagged_stream;
+
+
+ py::class_<pdu_to_tagged_stream,
+ gr::tagged_stream_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pdu_to_tagged_stream>>(
+ m, "pdu_to_tagged_stream", D(pdu_to_tagged_stream))
+
+ .def(py::init(&pdu_to_tagged_stream::make),
+ py::arg("type"),
+ py::arg("lengthtagname") = "packet_len",
+ D(pdu_to_tagged_stream, make))
+
+
+ ;
+
+
+ py::module m_pdu = m.def_submodule("pdu");
+}
diff --git a/gr-blocks/python/blocks/bindings/peak_detector2_fb_python.cc b/gr-blocks/python/blocks/bindings/peak_detector2_fb_python.cc
new file mode 100644
index 0000000000..d39a3daa46
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/peak_detector2_fb_python.cc
@@ -0,0 +1,73 @@
+/*
+ * 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/blocks/peak_detector2_fb.h>
+// pydoc.h is automatically generated in the build directory
+#include <peak_detector2_fb_pydoc.h>
+
+void bind_peak_detector2_fb(py::module& m)
+{
+
+ using peak_detector2_fb = ::gr::blocks::peak_detector2_fb;
+
+
+ py::class_<peak_detector2_fb,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<peak_detector2_fb>>(
+ m, "peak_detector2_fb", D(peak_detector2_fb))
+
+ .def(py::init(&peak_detector2_fb::make),
+ py::arg("threshold_factor_rise") = 7,
+ py::arg("look_ahead") = 1000,
+ py::arg("alpha") = 0.001,
+ D(peak_detector2_fb, make))
+
+
+ .def("set_threshold_factor_rise",
+ &peak_detector2_fb::set_threshold_factor_rise,
+ py::arg("thr"),
+ D(peak_detector2_fb, set_threshold_factor_rise))
+
+
+ .def("set_look_ahead",
+ &peak_detector2_fb::set_look_ahead,
+ py::arg("look"),
+ D(peak_detector2_fb, set_look_ahead))
+
+
+ .def("set_alpha",
+ &peak_detector2_fb::set_alpha,
+ py::arg("alpha"),
+ D(peak_detector2_fb, set_alpha))
+
+
+ .def("threshold_factor_rise",
+ &peak_detector2_fb::threshold_factor_rise,
+ D(peak_detector2_fb, threshold_factor_rise))
+
+
+ .def("look_ahead",
+ &peak_detector2_fb::look_ahead,
+ D(peak_detector2_fb, look_ahead))
+
+
+ .def("alpha", &peak_detector2_fb::alpha, D(peak_detector2_fb, alpha))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/peak_detector_python.cc b/gr-blocks/python/blocks/bindings/peak_detector_python.cc
new file mode 100644
index 0000000000..cb2afab87e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/peak_detector_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/blocks/peak_detector.h>
+
+template <typename T>
+void bind_peak_detector_template(py::module& m, const char* classname)
+{
+ using peak_detector = gr::blocks::peak_detector<T>;
+
+ py::class_<peak_detector,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<peak_detector>>(m, classname)
+ .def(py::init(&gr::blocks::peak_detector<T>::make),
+ py::arg("threshold_factor_rise") = .25,
+ py::arg("threshold_factor_fall") = .40,
+ py::arg("look_ahead") = 10,
+ py::arg("alpha") = .001)
+
+ .def("set_threshold_factor_rise",
+ &peak_detector::set_threshold_factor_rise,
+ py::arg("thr"))
+ .def("set_threshold_factor_fall",
+ &peak_detector::set_threshold_factor_fall,
+ py::arg("thr"))
+ .def("set_look_ahead", &peak_detector::set_look_ahead, py::arg("look"))
+ .def("set_alpha", &peak_detector::set_alpha, py::arg("alpha"))
+ .def("threshold_factor_rise", &peak_detector::threshold_factor_rise)
+ .def("threshold_factor_fall", &peak_detector::threshold_factor_fall)
+ .def("look_ahead", &peak_detector::look_ahead)
+ .def("alpha", &peak_detector::alpha);
+}
+
+void bind_peak_detector(py::module& m)
+{
+ bind_peak_detector_template<std::int16_t>(m, "peak_detector_sb");
+ bind_peak_detector_template<std::int32_t>(m, "peak_detector_ib");
+ bind_peak_detector_template<float>(m, "peak_detector_fb");
+}
diff --git a/gr-blocks/python/blocks/bindings/plateau_detector_fb_python.cc b/gr-blocks/python/blocks/bindings/plateau_detector_fb_python.cc
new file mode 100644
index 0000000000..14f30d2561
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/plateau_detector_fb_python.cc
@@ -0,0 +1,51 @@
+/*
+ * 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/blocks/plateau_detector_fb.h>
+// pydoc.h is automatically generated in the build directory
+#include <plateau_detector_fb_pydoc.h>
+
+void bind_plateau_detector_fb(py::module& m)
+{
+
+ using plateau_detector_fb = ::gr::blocks::plateau_detector_fb;
+
+
+ py::class_<plateau_detector_fb,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<plateau_detector_fb>>(
+ m, "plateau_detector_fb", D(plateau_detector_fb))
+
+ .def(py::init(&plateau_detector_fb::make),
+ py::arg("max_len"),
+ py::arg("threshold") = 0.90000000000000002,
+ D(plateau_detector_fb, make))
+
+
+ .def("set_threshold",
+ &plateau_detector_fb::set_threshold,
+ py::arg("threshold"),
+ D(plateau_detector_fb, set_threshold))
+
+
+ .def("threshold",
+ &plateau_detector_fb::threshold,
+ D(plateau_detector_fb, threshold))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/probe_rate_python.cc b/gr-blocks/python/blocks/bindings/probe_rate_python.cc
new file mode 100644
index 0000000000..ec9138f4f3
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/probe_rate_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/blocks/probe_rate.h>
+// pydoc.h is automatically generated in the build directory
+#include <probe_rate_pydoc.h>
+
+void bind_probe_rate(py::module& m)
+{
+
+ using probe_rate = ::gr::blocks::probe_rate;
+
+
+ py::class_<probe_rate,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<probe_rate>>(m, "probe_rate", D(probe_rate))
+
+ .def(py::init(&probe_rate::make),
+ py::arg("itemsize"),
+ py::arg("update_rate_ms") = 500.,
+ py::arg("alpha") = 1.0E-4,
+ D(probe_rate, make))
+
+
+ .def("set_alpha",
+ &probe_rate::set_alpha,
+ py::arg("alpha"),
+ D(probe_rate, set_alpha))
+
+
+ .def("rate", &probe_rate::rate, D(probe_rate, rate))
+
+
+ .def("start", &probe_rate::start, D(probe_rate, start))
+
+
+ .def("stop", &probe_rate::stop, D(probe_rate, stop))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/probe_signal_python.cc b/gr-blocks/python/blocks/bindings/probe_signal_python.cc
new file mode 100644
index 0000000000..2057f2497d
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/probe_signal_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/probe_signal.h>
+
+template <typename T>
+void bind_probe_signal_template(py::module& m, const char* classname)
+{
+ using probe_signal = gr::blocks::probe_signal<T>;
+
+ py::class_<probe_signal,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<probe_signal>>(m, classname)
+ .def(py::init(&gr::blocks::probe_signal<T>::make))
+ .def("level", &probe_signal::level);
+}
+
+void bind_probe_signal(py::module& m)
+{
+ bind_probe_signal_template<std::uint8_t>(m, "probe_signal_b");
+ bind_probe_signal_template<std::int16_t>(m, "probe_signal_s");
+ bind_probe_signal_template<std::int32_t>(m, "probe_signal_i");
+ bind_probe_signal_template<float>(m, "probe_signal_f");
+ bind_probe_signal_template<gr_complex>(m, "probe_signal_c");
+}
diff --git a/gr-blocks/python/blocks/bindings/probe_signal_v_python.cc b/gr-blocks/python/blocks/bindings/probe_signal_v_python.cc
new file mode 100644
index 0000000000..b7730bf999
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/probe_signal_v_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/probe_signal_v.h>
+
+template <typename T>
+void bind_probe_signal_v_template(py::module& m, const char* classname)
+{
+ using probe_signal_v = gr::blocks::probe_signal_v<T>;
+
+ py::class_<probe_signal_v,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<probe_signal_v>>(m, classname)
+ .def(py::init(&gr::blocks::probe_signal_v<T>::make), py::arg("size"))
+ .def("level", &probe_signal_v::level);
+}
+
+void bind_probe_signal_v(py::module& m)
+{
+ bind_probe_signal_v_template<std::uint8_t>(m, "probe_signal_vb");
+ bind_probe_signal_v_template<std::int16_t>(m, "probe_signal_vs");
+ bind_probe_signal_v_template<std::int32_t>(m, "probe_signal_vi");
+ bind_probe_signal_v_template<float>(m, "probe_signal_vf");
+ bind_probe_signal_v_template<gr_complex>(m, "probe_signal_vc");
+}
diff --git a/gr-blocks/python/blocks/bindings/python_bindings.cc b/gr-blocks/python/blocks/bindings/python_bindings.cc
new file mode 100644
index 0000000000..308a459e0b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/python_bindings.cc
@@ -0,0 +1,360 @@
+
+/*
+ * 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_abs_blk(py::module&);
+void bind_add_blk(py::module&);
+void bind_add_const_bb(py::module&);
+void bind_add_const_cc(py::module&);
+void bind_add_const_ff(py::module&);
+void bind_add_const_ii(py::module&);
+void bind_add_const_ss(py::module&);
+void bind_add_const_v(py::module&);
+void bind_and_blk(py::module&);
+void bind_and_const(py::module&);
+void bind_annotator_1to1(py::module&);
+void bind_annotator_alltoall(py::module&);
+void bind_annotator_raw(py::module&);
+void bind_argmax(py::module&);
+void bind_burst_tagger(py::module&);
+void bind_char_to_float(py::module&);
+void bind_char_to_short(py::module&);
+void bind_check_lfsr_32k_s(py::module&);
+void bind_complex_to_arg(py::module&);
+void bind_complex_to_float(py::module&);
+void bind_complex_to_imag(py::module&);
+void bind_complex_to_interleaved_char(py::module&);
+void bind_complex_to_interleaved_short(py::module&);
+void bind_complex_to_mag(py::module&);
+void bind_complex_to_mag_squared(py::module&);
+void bind_complex_to_magphase(py::module&);
+void bind_complex_to_real(py::module&);
+void bind_conjugate_cc(py::module&);
+void bind_control_loop(py::module&);
+void bind_copy(py::module&);
+void bind_correctiq(py::module&);
+void bind_correctiq_auto(py::module&);
+void bind_correctiq_man(py::module&);
+void bind_correctiq_swapiq(py::module&);
+void bind_count_bits(py::module&);
+// void bind_ctrlport_probe2_b(py::module&);
+// void bind_ctrlport_probe2_c(py::module&);
+// void bind_ctrlport_probe2_f(py::module&);
+// void bind_ctrlport_probe2_i(py::module&);
+// void bind_ctrlport_probe2_s(py::module&);
+// void bind_ctrlport_probe_c(py::module&);
+void bind_deinterleave(py::module&);
+void bind_delay(py::module&);
+void bind_divide(py::module&);
+void bind_endian_swap(py::module&);
+void bind_exponentiate_const_cci(py::module&);
+void bind_file_descriptor_sink(py::module&);
+void bind_file_descriptor_source(py::module&);
+void bind_file_meta_sink(py::module&);
+void bind_file_meta_source(py::module&);
+void bind_file_sink(py::module&);
+void bind_file_sink_base(py::module&);
+void bind_file_source(py::module&);
+void bind_float_to_char(py::module&);
+void bind_float_to_complex(py::module&);
+void bind_float_to_int(py::module&);
+void bind_float_to_short(py::module&);
+void bind_float_to_uchar(py::module&);
+void bind_head(py::module&);
+void bind_int_to_float(py::module&);
+void bind_integrate(py::module&);
+void bind_interleave(py::module&);
+void bind_interleaved_char_to_complex(py::module&);
+void bind_interleaved_short_to_complex(py::module&);
+void bind_keep_m_in_n(py::module&);
+void bind_keep_one_in_n(py::module&);
+void bind_lfsr_15_1_0(py::module&);
+void bind_lfsr_32k(py::module&);
+void bind_lfsr_32k_source_s(py::module&);
+// void bind_log2_const(py::module&);
+void bind_magphase_to_complex(py::module&);
+void bind_max_blk(py::module&);
+void bind_message_debug(py::module&);
+void bind_message_strobe(py::module&);
+void bind_message_strobe_random(py::module&);
+void bind_min_blk(py::module&);
+void bind_moving_average(py::module&);
+void bind_multiply(py::module&);
+void bind_multiply_by_tag_value_cc(py::module&);
+void bind_multiply_conjugate_cc(py::module&);
+void bind_multiply_const(py::module&);
+void bind_multiply_const_v(py::module&);
+void bind_multiply_matrix(py::module&);
+void bind_mute(py::module&);
+void bind_nlog10_ff(py::module&);
+void bind_nop(py::module&);
+void bind_not_blk(py::module&);
+void bind_null_sink(py::module&);
+void bind_null_source(py::module&);
+void bind_or_blk(py::module&);
+// void bind_pack_k_bits(py::module&);
+void bind_pack_k_bits_bb(py::module&);
+void bind_packed_to_unpacked(py::module&);
+void bind_patterned_interleaver(py::module&);
+void bind_pdu(py::module&);
+void bind_pdu_filter(py::module&);
+void bind_pdu_remove(py::module&);
+void bind_pdu_set(py::module&);
+void bind_pdu_to_tagged_stream(py::module&);
+void bind_peak_detector(py::module&);
+void bind_peak_detector2_fb(py::module&);
+void bind_plateau_detector_fb(py::module&);
+void bind_probe_rate(py::module&);
+void bind_probe_signal(py::module&);
+void bind_probe_signal_v(py::module&);
+void bind_random_pdu(py::module&);
+void bind_regenerate_bb(py::module&);
+void bind_repack_bits_bb(py::module&);
+void bind_repeat(py::module&);
+void bind_rms_cf(py::module&);
+void bind_rms_ff(py::module&);
+void bind_rotator(py::module&);
+void bind_rotator_cc(py::module&);
+void bind_sample_and_hold(py::module&);
+void bind_selector(py::module&);
+void bind_short_to_char(py::module&);
+void bind_short_to_float(py::module&);
+void bind_skiphead(py::module&);
+void bind_socket_pdu(py::module&);
+void bind_stream_mux(py::module&);
+void bind_stream_to_streams(py::module&);
+void bind_stream_to_tagged_stream(py::module&);
+void bind_stream_to_vector(py::module&);
+void bind_streams_to_stream(py::module&);
+void bind_streams_to_vector(py::module&);
+void bind_stretch_ff(py::module&);
+void bind_sub(py::module&);
+void bind_tag_debug(py::module&);
+void bind_tag_gate(py::module&);
+void bind_tag_share(py::module&);
+void bind_tagged_file_sink(py::module&);
+void bind_tagged_stream_align(py::module&);
+void bind_tagged_stream_multiply_length(py::module&);
+void bind_tagged_stream_mux(py::module&);
+void bind_tagged_stream_to_pdu(py::module&);
+void bind_tags_strobe(py::module&);
+void bind_tcp_server_sink(py::module&);
+void bind_test_tag_variable_rate_ff(py::module&);
+void bind_threshold_ff(py::module&);
+void bind_throttle(py::module&);
+void bind_transcendental(py::module&);
+void bind_tsb_vector_sink(py::module&);
+void bind_tuntap_pdu(py::module&);
+void bind_uchar_to_float(py::module&);
+void bind_udp_sink(py::module&);
+void bind_udp_source(py::module&);
+void bind_unpack_k_bits(py::module&);
+void bind_unpack_k_bits_bb(py::module&);
+void bind_unpacked_to_packed(py::module&);
+void bind_vco_c(py::module&);
+void bind_vco_f(py::module&);
+void bind_vector_insert(py::module&);
+void bind_vector_map(py::module&);
+void bind_vector_sink(py::module&);
+void bind_vector_source(py::module&);
+void bind_vector_to_stream(py::module&);
+void bind_vector_to_streams(py::module&);
+void bind_wavfile(py::module&);
+void bind_wavfile_sink(py::module&);
+void bind_wavfile_source(py::module&);
+void bind_xor_blk(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(blocks_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_abs_blk(m);
+ bind_add_blk(m);
+ bind_add_const_bb(m);
+ bind_add_const_cc(m);
+ bind_add_const_ff(m);
+ bind_add_const_ii(m);
+ bind_add_const_ss(m);
+ bind_add_const_v(m);
+ bind_and_blk(m);
+ bind_and_const(m);
+ bind_annotator_1to1(m);
+ bind_annotator_alltoall(m);
+ bind_annotator_raw(m);
+ bind_argmax(m);
+ bind_burst_tagger(m);
+ bind_char_to_float(m);
+ bind_char_to_short(m);
+ bind_check_lfsr_32k_s(m);
+ bind_complex_to_arg(m);
+ bind_complex_to_float(m);
+ bind_complex_to_imag(m);
+ bind_complex_to_interleaved_char(m);
+ bind_complex_to_interleaved_short(m);
+ bind_complex_to_mag(m);
+ bind_complex_to_mag_squared(m);
+ bind_complex_to_magphase(m);
+ bind_complex_to_real(m);
+ bind_conjugate_cc(m);
+ bind_control_loop(m);
+ bind_copy(m);
+ bind_correctiq(m);
+ bind_correctiq_auto(m);
+ bind_correctiq_man(m);
+ bind_correctiq_swapiq(m);
+ bind_count_bits(m);
+ // bind_ctrlport_probe2_b(m);
+ // bind_ctrlport_probe2_c(m);
+ // bind_ctrlport_probe2_f(m);
+ // bind_ctrlport_probe2_i(m);
+ // bind_ctrlport_probe2_s(m);
+ // bind_ctrlport_probe_c(m);
+ bind_deinterleave(m);
+ bind_delay(m);
+ bind_divide(m);
+ bind_endian_swap(m);
+ bind_exponentiate_const_cci(m);
+ bind_file_descriptor_sink(m);
+ bind_file_descriptor_source(m);
+ bind_file_meta_sink(m);
+ bind_file_meta_source(m);
+ bind_file_sink_base(m);
+ bind_file_sink(m);
+ bind_file_source(m);
+ bind_float_to_char(m);
+ bind_float_to_complex(m);
+ bind_float_to_int(m);
+ bind_float_to_short(m);
+ bind_float_to_uchar(m);
+ bind_head(m);
+ bind_int_to_float(m);
+ bind_integrate(m);
+ bind_interleave(m);
+ bind_interleaved_char_to_complex(m);
+ bind_interleaved_short_to_complex(m);
+ bind_keep_m_in_n(m);
+ bind_keep_one_in_n(m);
+ bind_lfsr_15_1_0(m);
+ bind_lfsr_32k(m);
+ bind_lfsr_32k_source_s(m);
+ // bind_log2_const(m);
+ bind_magphase_to_complex(m);
+ bind_max_blk(m);
+ bind_message_debug(m);
+ bind_message_strobe(m);
+ bind_message_strobe_random(m);
+ bind_min_blk(m);
+ bind_moving_average(m);
+ bind_multiply(m);
+ bind_multiply_by_tag_value_cc(m);
+ bind_multiply_conjugate_cc(m);
+ bind_multiply_const(m);
+ bind_multiply_const_v(m);
+ bind_multiply_matrix(m);
+ bind_mute(m);
+ bind_nlog10_ff(m);
+ bind_nop(m);
+ bind_not_blk(m);
+ bind_null_sink(m);
+ bind_null_source(m);
+ bind_or_blk(m);
+ // bind_pack_k_bits(m);
+ bind_pack_k_bits_bb(m);
+ bind_packed_to_unpacked(m);
+ bind_patterned_interleaver(m);
+ bind_pdu(m);
+ bind_pdu_filter(m);
+ bind_pdu_remove(m);
+ bind_pdu_set(m);
+ bind_pdu_to_tagged_stream(m);
+ bind_peak_detector(m);
+ bind_peak_detector2_fb(m);
+ bind_plateau_detector_fb(m);
+ bind_probe_rate(m);
+ bind_probe_signal(m);
+ bind_probe_signal_v(m);
+ bind_random_pdu(m);
+ bind_regenerate_bb(m);
+ bind_repack_bits_bb(m);
+ bind_repeat(m);
+ bind_rms_cf(m);
+ bind_rms_ff(m);
+ bind_rotator(m);
+ bind_rotator_cc(m);
+ bind_sample_and_hold(m);
+ bind_selector(m);
+ bind_short_to_char(m);
+ bind_short_to_float(m);
+ bind_skiphead(m);
+ bind_socket_pdu(m);
+ bind_stream_mux(m);
+ bind_stream_to_streams(m);
+ bind_stream_to_tagged_stream(m);
+ bind_stream_to_vector(m);
+ bind_streams_to_stream(m);
+ bind_streams_to_vector(m);
+ bind_stretch_ff(m);
+ bind_sub(m);
+ bind_tag_debug(m);
+ bind_tag_gate(m);
+ bind_tag_share(m);
+ bind_tagged_file_sink(m);
+ bind_tagged_stream_align(m);
+ bind_tagged_stream_multiply_length(m);
+ bind_tagged_stream_mux(m);
+ bind_tagged_stream_to_pdu(m);
+ bind_tags_strobe(m);
+ bind_tcp_server_sink(m);
+ bind_test_tag_variable_rate_ff(m);
+ bind_threshold_ff(m);
+ bind_throttle(m);
+ bind_transcendental(m);
+ bind_tsb_vector_sink(m);
+ bind_tuntap_pdu(m);
+ bind_uchar_to_float(m);
+ bind_udp_sink(m);
+ bind_udp_source(m);
+ bind_unpack_k_bits(m);
+ bind_unpack_k_bits_bb(m);
+ bind_unpacked_to_packed(m);
+ bind_vco_c(m);
+ bind_vco_f(m);
+ bind_vector_insert(m);
+ bind_vector_map(m);
+ bind_vector_sink(m);
+ bind_vector_source(m);
+ bind_vector_to_stream(m);
+ bind_vector_to_streams(m);
+ bind_wavfile(m);
+ bind_wavfile_sink(m);
+ bind_wavfile_source(m);
+ bind_xor_blk(m);
+}
diff --git a/gr-blocks/python/blocks/bindings/random_pdu_python.cc b/gr-blocks/python/blocks/bindings/random_pdu_python.cc
new file mode 100644
index 0000000000..c25276a4fb
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/random_pdu_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/random_pdu.h>
+// pydoc.h is automatically generated in the build directory
+#include <random_pdu_pydoc.h>
+
+void bind_random_pdu(py::module& m)
+{
+
+ using random_pdu = ::gr::blocks::random_pdu;
+
+
+ py::class_<random_pdu, gr::block, gr::basic_block, std::shared_ptr<random_pdu>>(
+ m, "random_pdu", D(random_pdu))
+
+ .def(py::init(&random_pdu::make),
+ py::arg("mintime"),
+ py::arg("maxtime"),
+ py::arg("byte_mask") = 255,
+ py::arg("length_modulo") = 1,
+ D(random_pdu, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/regenerate_bb_python.cc b/gr-blocks/python/blocks/bindings/regenerate_bb_python.cc
new file mode 100644
index 0000000000..76075c50a5
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/regenerate_bb_python.cc
@@ -0,0 +1,58 @@
+/*
+ * 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/blocks/regenerate_bb.h>
+// pydoc.h is automatically generated in the build directory
+#include <regenerate_bb_pydoc.h>
+
+void bind_regenerate_bb(py::module& m)
+{
+
+ using regenerate_bb = ::gr::blocks::regenerate_bb;
+
+
+ py::class_<regenerate_bb,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<regenerate_bb>>(m, "regenerate_bb", D(regenerate_bb))
+
+ .def(py::init(&regenerate_bb::make),
+ py::arg("period"),
+ py::arg("max_regen") = 500,
+ D(regenerate_bb, make))
+
+
+ .def("set_max_regen",
+ &regenerate_bb::set_max_regen,
+ py::arg("regen"),
+ D(regenerate_bb, set_max_regen))
+
+
+ .def("set_period",
+ &regenerate_bb::set_period,
+ py::arg("period"),
+ D(regenerate_bb, set_period))
+
+
+ .def("max_regen", &regenerate_bb::max_regen, D(regenerate_bb, max_regen))
+
+
+ .def("period", &regenerate_bb::period, D(regenerate_bb, period))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/repack_bits_bb_python.cc b/gr-blocks/python/blocks/bindings/repack_bits_bb_python.cc
new file mode 100644
index 0000000000..dade725b01
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/repack_bits_bb_python.cc
@@ -0,0 +1,50 @@
+/*
+ * 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/blocks/repack_bits_bb.h>
+// pydoc.h is automatically generated in the build directory
+#include <repack_bits_bb_pydoc.h>
+
+void bind_repack_bits_bb(py::module& m)
+{
+
+ using repack_bits_bb = ::gr::blocks::repack_bits_bb;
+
+
+ py::class_<repack_bits_bb,
+ gr::tagged_stream_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<repack_bits_bb>>(m, "repack_bits_bb", D(repack_bits_bb))
+
+ .def(py::init(&repack_bits_bb::make),
+ py::arg("k"),
+ py::arg("l") = 8,
+ py::arg("tsb_tag_key") = "",
+ py::arg("align_output") = false,
+ py::arg("endianness") = ::gr::endianness_t::GR_LSB_FIRST,
+ D(repack_bits_bb, make))
+
+
+ .def("set_k_and_l",
+ &repack_bits_bb::set_k_and_l,
+ py::arg("k"),
+ py::arg("l"),
+ D(repack_bits_bb, set_k_and_l))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/repeat_python.cc b/gr-blocks/python/blocks/bindings/repeat_python.cc
new file mode 100644
index 0000000000..7590857ba8
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/repeat_python.cc
@@ -0,0 +1,50 @@
+/*
+ * 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/blocks/repeat.h>
+// pydoc.h is automatically generated in the build directory
+#include <repeat_pydoc.h>
+
+void bind_repeat(py::module& m)
+{
+
+ using repeat = ::gr::blocks::repeat;
+
+
+ py::class_<repeat,
+ gr::sync_interpolator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<repeat>>(m, "repeat", D(repeat))
+
+ .def(py::init(&repeat::make),
+ py::arg("itemsize"),
+ py::arg("repeat"),
+ D(repeat, make))
+
+
+ .def("interpolation", &repeat::interpolation, D(repeat, interpolation))
+
+
+ .def("set_interpolation",
+ &repeat::set_interpolation,
+ py::arg("interp"),
+ D(repeat, set_interpolation))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/rms_cf_python.cc b/gr-blocks/python/blocks/bindings/rms_cf_python.cc
new file mode 100644
index 0000000000..5bd3502a53
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/rms_cf_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/rms_cf.h>
+// pydoc.h is automatically generated in the build directory
+#include <rms_cf_pydoc.h>
+
+void bind_rms_cf(py::module& m)
+{
+
+ using rms_cf = ::gr::blocks::rms_cf;
+
+
+ py::class_<rms_cf,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<rms_cf>>(m, "rms_cf", D(rms_cf))
+
+ .def(py::init(&rms_cf::make), py::arg("alpha") = 1.0E-4, D(rms_cf, make))
+
+
+ .def("set_alpha", &rms_cf::set_alpha, py::arg("alpha"), D(rms_cf, set_alpha))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/rms_ff_python.cc b/gr-blocks/python/blocks/bindings/rms_ff_python.cc
new file mode 100644
index 0000000000..1310ebd363
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/rms_ff_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/rms_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <rms_ff_pydoc.h>
+
+void bind_rms_ff(py::module& m)
+{
+
+ using rms_ff = ::gr::blocks::rms_ff;
+
+
+ py::class_<rms_ff,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<rms_ff>>(m, "rms_ff", D(rms_ff))
+
+ .def(py::init(&rms_ff::make), py::arg("alpha") = 1.0E-4, D(rms_ff, make))
+
+
+ .def("set_alpha", &rms_ff::set_alpha, py::arg("alpha"), D(rms_ff, set_alpha))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/rotator_cc_python.cc b/gr-blocks/python/blocks/bindings/rotator_cc_python.cc
new file mode 100644
index 0000000000..97a45d6635
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/rotator_cc_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/rotator_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <rotator_cc_pydoc.h>
+
+void bind_rotator_cc(py::module& m)
+{
+
+ using rotator_cc = ::gr::blocks::rotator_cc;
+
+
+ py::class_<rotator_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<rotator_cc>>(m, "rotator_cc", D(rotator_cc))
+
+ .def(py::init(&rotator_cc::make), py::arg("phase_inc") = 0., D(rotator_cc, make))
+
+
+ .def("set_phase_inc",
+ &rotator_cc::set_phase_inc,
+ py::arg("phase_inc"),
+ D(rotator_cc, set_phase_inc))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/rotator_python.cc b/gr-blocks/python/blocks/bindings/rotator_python.cc
new file mode 100644
index 0000000000..8765cac79f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/rotator_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/blocks/rotator.h>
+// pydoc.h is automatically generated in the build directory
+#include <rotator_pydoc.h>
+
+void bind_rotator(py::module& m)
+{
+
+ using rotator = ::gr::blocks::rotator;
+
+
+ py::class_<rotator, std::shared_ptr<rotator>>(m, "rotator", D(rotator))
+
+ .def(py::init<>(), D(rotator, rotator, 0))
+ .def(py::init<gr::blocks::rotator const&>(),
+ py::arg("arg0"),
+ D(rotator, rotator, 1))
+
+
+ .def("set_phase", &rotator::set_phase, py::arg("phase"), D(rotator, set_phase))
+
+
+ .def("set_phase_incr",
+ &rotator::set_phase_incr,
+ py::arg("incr"),
+ D(rotator, set_phase_incr))
+
+
+ .def("rotate", &rotator::rotate, py::arg("in"), D(rotator, rotate))
+
+
+ .def("rotateN",
+ &rotator::rotateN,
+ py::arg("out"),
+ py::arg("in"),
+ py::arg("n"),
+ D(rotator, rotateN))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/sample_and_hold_python.cc b/gr-blocks/python/blocks/bindings/sample_and_hold_python.cc
new file mode 100644
index 0000000000..893e025548
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/sample_and_hold_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/sample_and_hold.h>
+
+template <typename T>
+void bind_sample_and_hold_template(py::module& m, const char* classname)
+{
+ using sample_and_hold = gr::blocks::sample_and_hold<T>;
+
+ py::class_<sample_and_hold,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<sample_and_hold>>(m, classname)
+ .def(py::init(&gr::blocks::sample_and_hold<T>::make));
+}
+
+void bind_sample_and_hold(py::module& m)
+{
+ bind_sample_and_hold_template<std::uint8_t>(m, "sample_and_hold_bb");
+ bind_sample_and_hold_template<std::int16_t>(m, "sample_and_hold_ss");
+ bind_sample_and_hold_template<std::int32_t>(m, "sample_and_hold_ii");
+ bind_sample_and_hold_template<float>(m, "sample_and_hold_ff");
+ // bind_sample_and_hold_template<gr_complex>(m,"sample_and_hold_cc");
+}
diff --git a/gr-blocks/python/blocks/bindings/selector_python.cc b/gr-blocks/python/blocks/bindings/selector_python.cc
new file mode 100644
index 0000000000..47cdb8f536
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/selector_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/selector.h>
+// pydoc.h is automatically generated in the build directory
+#include <selector_pydoc.h>
+
+void bind_selector(py::module& m)
+{
+
+ using selector = ::gr::blocks::selector;
+
+
+ py::class_<selector, gr::block, gr::basic_block, std::shared_ptr<selector>>(
+ m, "selector", D(selector))
+
+ .def(py::init(&selector::make),
+ py::arg("itemsize"),
+ py::arg("input_index"),
+ py::arg("output_index"),
+ D(selector, make))
+
+
+ .def("set_enabled",
+ &selector::set_enabled,
+ py::arg("enable"),
+ D(selector, set_enabled))
+
+
+ .def("enabled", &selector::enabled, D(selector, enabled))
+
+
+ .def("set_input_index",
+ &selector::set_input_index,
+ py::arg("input_index"),
+ D(selector, set_input_index))
+
+
+ .def("input_index", &selector::input_index, D(selector, input_index))
+
+
+ .def("set_output_index",
+ &selector::set_output_index,
+ py::arg("output_index"),
+ D(selector, set_output_index))
+
+
+ .def("output_index", &selector::output_index, D(selector, output_index))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/short_to_char_python.cc b/gr-blocks/python/blocks/bindings/short_to_char_python.cc
new file mode 100644
index 0000000000..046f6d818c
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/short_to_char_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/blocks/short_to_char.h>
+// pydoc.h is automatically generated in the build directory
+#include <short_to_char_pydoc.h>
+
+void bind_short_to_char(py::module& m)
+{
+
+ using short_to_char = ::gr::blocks::short_to_char;
+
+
+ py::class_<short_to_char,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<short_to_char>>(m, "short_to_char", D(short_to_char))
+
+ .def(py::init(&short_to_char::make), py::arg("vlen") = 1, D(short_to_char, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/short_to_float_python.cc b/gr-blocks/python/blocks/bindings/short_to_float_python.cc
new file mode 100644
index 0000000000..3578f2d8d6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/short_to_float_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/blocks/short_to_float.h>
+// pydoc.h is automatically generated in the build directory
+#include <short_to_float_pydoc.h>
+
+void bind_short_to_float(py::module& m)
+{
+
+ using short_to_float = ::gr::blocks::short_to_float;
+
+
+ py::class_<short_to_float,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<short_to_float>>(m, "short_to_float", D(short_to_float))
+
+ .def(py::init(&short_to_float::make),
+ py::arg("vlen") = 1,
+ py::arg("scale") = 1.,
+ D(short_to_float, make))
+
+
+ .def("scale", &short_to_float::scale, D(short_to_float, scale))
+
+
+ .def("set_scale",
+ &short_to_float::set_scale,
+ py::arg("scale"),
+ D(short_to_float, set_scale))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/skiphead_python.cc b/gr-blocks/python/blocks/bindings/skiphead_python.cc
new file mode 100644
index 0000000000..86a08bd80e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/skiphead_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/blocks/skiphead.h>
+// pydoc.h is automatically generated in the build directory
+#include <skiphead_pydoc.h>
+
+void bind_skiphead(py::module& m)
+{
+
+ using skiphead = ::gr::blocks::skiphead;
+
+
+ py::class_<skiphead, gr::block, gr::basic_block, std::shared_ptr<skiphead>>(
+ m, "skiphead", D(skiphead))
+
+ .def(py::init(&skiphead::make),
+ py::arg("itemsize"),
+ py::arg("nitems_to_skip"),
+ D(skiphead, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/socket_pdu_python.cc b/gr-blocks/python/blocks/bindings/socket_pdu_python.cc
new file mode 100644
index 0000000000..6512f3297e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/socket_pdu_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/socket_pdu.h>
+// pydoc.h is automatically generated in the build directory
+#include <socket_pdu_pydoc.h>
+
+void bind_socket_pdu(py::module& m)
+{
+
+ using socket_pdu = ::gr::blocks::socket_pdu;
+
+
+ py::class_<socket_pdu, gr::block, gr::basic_block, std::shared_ptr<socket_pdu>>(
+ m, "socket_pdu", D(socket_pdu))
+
+ .def(py::init(&socket_pdu::make),
+ py::arg("type"),
+ py::arg("addr"),
+ py::arg("port"),
+ py::arg("MTU") = 10000,
+ py::arg("tcp_no_delay") = false,
+ D(socket_pdu, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/stream_mux_python.cc b/gr-blocks/python/blocks/bindings/stream_mux_python.cc
new file mode 100644
index 0000000000..fa2fdd66b1
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/stream_mux_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/blocks/stream_mux.h>
+// pydoc.h is automatically generated in the build directory
+#include <stream_mux_pydoc.h>
+
+void bind_stream_mux(py::module& m)
+{
+
+ using stream_mux = ::gr::blocks::stream_mux;
+
+
+ py::class_<stream_mux, gr::block, gr::basic_block, std::shared_ptr<stream_mux>>(
+ m, "stream_mux", D(stream_mux))
+
+ .def(py::init(&stream_mux::make),
+ py::arg("itemsize"),
+ py::arg("lengths"),
+ D(stream_mux, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/stream_to_streams_python.cc b/gr-blocks/python/blocks/bindings/stream_to_streams_python.cc
new file mode 100644
index 0000000000..101624713e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/stream_to_streams_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/stream_to_streams.h>
+// pydoc.h is automatically generated in the build directory
+#include <stream_to_streams_pydoc.h>
+
+void bind_stream_to_streams(py::module& m)
+{
+
+ using stream_to_streams = ::gr::blocks::stream_to_streams;
+
+
+ py::class_<stream_to_streams,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<stream_to_streams>>(
+ m, "stream_to_streams", D(stream_to_streams))
+
+ .def(py::init(&stream_to_streams::make),
+ py::arg("itemsize"),
+ py::arg("nstreams"),
+ D(stream_to_streams, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/stream_to_tagged_stream_python.cc b/gr-blocks/python/blocks/bindings/stream_to_tagged_stream_python.cc
new file mode 100644
index 0000000000..59aa2c5fca
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/stream_to_tagged_stream_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/blocks/stream_to_tagged_stream.h>
+// pydoc.h is automatically generated in the build directory
+#include <stream_to_tagged_stream_pydoc.h>
+
+void bind_stream_to_tagged_stream(py::module& m)
+{
+
+ using stream_to_tagged_stream = ::gr::blocks::stream_to_tagged_stream;
+
+
+ py::class_<stream_to_tagged_stream,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<stream_to_tagged_stream>>(
+ m, "stream_to_tagged_stream", D(stream_to_tagged_stream))
+
+ .def(py::init(&stream_to_tagged_stream::make),
+ py::arg("itemsize"),
+ py::arg("vlen"),
+ py::arg("packet_len"),
+ py::arg("len_tag_key"),
+ D(stream_to_tagged_stream, make))
+
+
+ .def("set_packet_len",
+ &stream_to_tagged_stream::set_packet_len,
+ py::arg("packet_len"),
+ D(stream_to_tagged_stream, set_packet_len))
+
+
+ .def("set_packet_len_pmt",
+ &stream_to_tagged_stream::set_packet_len_pmt,
+ py::arg("packet_len"),
+ D(stream_to_tagged_stream, set_packet_len_pmt))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/stream_to_vector_python.cc b/gr-blocks/python/blocks/bindings/stream_to_vector_python.cc
new file mode 100644
index 0000000000..f683300f80
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/stream_to_vector_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/stream_to_vector.h>
+// pydoc.h is automatically generated in the build directory
+#include <stream_to_vector_pydoc.h>
+
+void bind_stream_to_vector(py::module& m)
+{
+
+ using stream_to_vector = ::gr::blocks::stream_to_vector;
+
+
+ py::class_<stream_to_vector,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<stream_to_vector>>(
+ m, "stream_to_vector", D(stream_to_vector))
+
+ .def(py::init(&stream_to_vector::make),
+ py::arg("itemsize"),
+ py::arg("nitems_per_block"),
+ D(stream_to_vector, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/streams_to_stream_python.cc b/gr-blocks/python/blocks/bindings/streams_to_stream_python.cc
new file mode 100644
index 0000000000..46b67220fa
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/streams_to_stream_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/streams_to_stream.h>
+// pydoc.h is automatically generated in the build directory
+#include <streams_to_stream_pydoc.h>
+
+void bind_streams_to_stream(py::module& m)
+{
+
+ using streams_to_stream = ::gr::blocks::streams_to_stream;
+
+
+ py::class_<streams_to_stream,
+ gr::sync_interpolator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<streams_to_stream>>(
+ m, "streams_to_stream", D(streams_to_stream))
+
+ .def(py::init(&streams_to_stream::make),
+ py::arg("itemsize"),
+ py::arg("nstreams"),
+ D(streams_to_stream, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/streams_to_vector_python.cc b/gr-blocks/python/blocks/bindings/streams_to_vector_python.cc
new file mode 100644
index 0000000000..6a8e593c20
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/streams_to_vector_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/blocks/streams_to_vector.h>
+// pydoc.h is automatically generated in the build directory
+#include <streams_to_vector_pydoc.h>
+
+void bind_streams_to_vector(py::module& m)
+{
+
+ using streams_to_vector = ::gr::blocks::streams_to_vector;
+
+
+ py::class_<streams_to_vector,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<streams_to_vector>>(
+ m, "streams_to_vector", D(streams_to_vector))
+
+ .def(py::init(&streams_to_vector::make),
+ py::arg("itemsize"),
+ py::arg("nstreams"),
+ D(streams_to_vector, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/stretch_ff_python.cc b/gr-blocks/python/blocks/bindings/stretch_ff_python.cc
new file mode 100644
index 0000000000..fe393a8f14
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/stretch_ff_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/blocks/stretch_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <stretch_ff_pydoc.h>
+
+void bind_stretch_ff(py::module& m)
+{
+
+ using stretch_ff = ::gr::blocks::stretch_ff;
+
+
+ py::class_<stretch_ff,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<stretch_ff>>(m, "stretch_ff", D(stretch_ff))
+
+ .def(py::init(&stretch_ff::make),
+ py::arg("lo"),
+ py::arg("vlen") = 1,
+ D(stretch_ff, make))
+
+
+ .def("lo", &stretch_ff::lo, D(stretch_ff, lo))
+
+
+ .def("set_lo", &stretch_ff::set_lo, py::arg("lo"), D(stretch_ff, set_lo))
+
+
+ .def("vlen", &stretch_ff::vlen, D(stretch_ff, vlen))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/sub_python.cc b/gr-blocks/python/blocks/bindings/sub_python.cc
new file mode 100644
index 0000000000..8ede30862f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/sub_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/sub.h>
+
+template <typename T>
+void bind_sub_template(py::module& m, const char* classname)
+{
+ using sub = gr::blocks::sub<T>;
+
+ py::class_<sub, gr::sync_block, gr::block, gr::basic_block, std::shared_ptr<sub>>(
+ m, classname)
+ .def(py::init(&gr::blocks::sub<T>::make), py::arg("vlen") = 1);
+}
+
+void bind_sub(py::module& m)
+{
+ bind_sub_template<std::int16_t>(m, "sub_ss");
+ bind_sub_template<std::int32_t>(m, "sub_ii");
+ bind_sub_template<float>(m, "sub_ff");
+ bind_sub_template<gr_complex>(m, "sub_cc");
+}
diff --git a/gr-blocks/python/blocks/bindings/tag_debug_python.cc b/gr-blocks/python/blocks/bindings/tag_debug_python.cc
new file mode 100644
index 0000000000..51f62f5f80
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tag_debug_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/blocks/tag_debug.h>
+// pydoc.h is automatically generated in the build directory
+#include <tag_debug_pydoc.h>
+
+void bind_tag_debug(py::module& m)
+{
+
+ using tag_debug = ::gr::blocks::tag_debug;
+
+
+ py::class_<tag_debug,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<tag_debug>>(m, "tag_debug", D(tag_debug))
+
+ .def(py::init(&tag_debug::make),
+ py::arg("sizeof_stream_item"),
+ py::arg("name"),
+ py::arg("key_filter") = "",
+ D(tag_debug, make))
+
+
+ .def("current_tags", &tag_debug::current_tags, D(tag_debug, current_tags))
+
+
+ .def("num_tags", &tag_debug::num_tags, D(tag_debug, num_tags))
+
+
+ .def("set_display",
+ &tag_debug::set_display,
+ py::arg("d"),
+ D(tag_debug, set_display))
+
+
+ .def("set_save_all",
+ &tag_debug::set_save_all,
+ py::arg("s"),
+ D(tag_debug, set_save_all))
+
+
+ .def("set_key_filter",
+ &tag_debug::set_key_filter,
+ py::arg("key_filter"),
+ D(tag_debug, set_key_filter))
+
+
+ .def("key_filter", &tag_debug::key_filter, D(tag_debug, key_filter))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/tag_gate_python.cc b/gr-blocks/python/blocks/bindings/tag_gate_python.cc
new file mode 100644
index 0000000000..684827286e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tag_gate_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/blocks/tag_gate.h>
+// pydoc.h is automatically generated in the build directory
+#include <tag_gate_pydoc.h>
+
+void bind_tag_gate(py::module& m)
+{
+
+ using tag_gate = ::gr::blocks::tag_gate;
+
+
+ py::class_<tag_gate,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<tag_gate>>(m, "tag_gate", D(tag_gate))
+
+ .def(py::init(&tag_gate::make),
+ py::arg("item_size"),
+ py::arg("propagate_tags") = false,
+ D(tag_gate, make))
+
+
+ .def("set_propagation",
+ &tag_gate::set_propagation,
+ py::arg("propagate_tags"),
+ D(tag_gate, set_propagation))
+
+
+ .def("set_single_key",
+ &tag_gate::set_single_key,
+ py::arg("single_key"),
+ D(tag_gate, set_single_key))
+
+
+ .def("single_key", &tag_gate::single_key, D(tag_gate, single_key))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/tag_share_python.cc b/gr-blocks/python/blocks/bindings/tag_share_python.cc
new file mode 100644
index 0000000000..da3aebb39e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tag_share_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/blocks/tag_share.h>
+// pydoc.h is automatically generated in the build directory
+#include <tag_share_pydoc.h>
+
+void bind_tag_share(py::module& m)
+{
+
+ using tag_share = ::gr::blocks::tag_share;
+
+
+ py::class_<tag_share,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<tag_share>>(m, "tag_share", D(tag_share))
+
+ .def(py::init(&tag_share::make),
+ py::arg("sizeof_io_item"),
+ py::arg("sizeof_share_item"),
+ py::arg("vlen") = 1,
+ D(tag_share, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/tagged_file_sink_python.cc b/gr-blocks/python/blocks/bindings/tagged_file_sink_python.cc
new file mode 100644
index 0000000000..d52b9553bf
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tagged_file_sink_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/blocks/tagged_file_sink.h>
+// pydoc.h is automatically generated in the build directory
+#include <tagged_file_sink_pydoc.h>
+
+void bind_tagged_file_sink(py::module& m)
+{
+
+ using tagged_file_sink = ::gr::blocks::tagged_file_sink;
+
+
+ py::class_<tagged_file_sink,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<tagged_file_sink>>(
+ m, "tagged_file_sink", D(tagged_file_sink))
+
+ .def(py::init(&tagged_file_sink::make),
+ py::arg("itemsize"),
+ py::arg("samp_rate"),
+ D(tagged_file_sink, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/tagged_stream_align_python.cc b/gr-blocks/python/blocks/bindings/tagged_stream_align_python.cc
new file mode 100644
index 0000000000..8d0a78458f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tagged_stream_align_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/tagged_stream_align.h>
+// pydoc.h is automatically generated in the build directory
+#include <tagged_stream_align_pydoc.h>
+
+void bind_tagged_stream_align(py::module& m)
+{
+
+ using tagged_stream_align = ::gr::blocks::tagged_stream_align;
+
+
+ py::class_<tagged_stream_align,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<tagged_stream_align>>(
+ m, "tagged_stream_align", D(tagged_stream_align))
+
+ .def(py::init(&tagged_stream_align::make),
+ py::arg("itemsize"),
+ py::arg("lengthtagname"),
+ D(tagged_stream_align, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/tagged_stream_multiply_length_python.cc b/gr-blocks/python/blocks/bindings/tagged_stream_multiply_length_python.cc
new file mode 100644
index 0000000000..ac12861715
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tagged_stream_multiply_length_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/blocks/tagged_stream_multiply_length.h>
+// pydoc.h is automatically generated in the build directory
+#include <tagged_stream_multiply_length_pydoc.h>
+
+void bind_tagged_stream_multiply_length(py::module& m)
+{
+
+ using tagged_stream_multiply_length = ::gr::blocks::tagged_stream_multiply_length;
+
+
+ py::class_<tagged_stream_multiply_length,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<tagged_stream_multiply_length>>(
+ m, "tagged_stream_multiply_length", D(tagged_stream_multiply_length))
+
+ .def(py::init(&tagged_stream_multiply_length::make),
+ py::arg("itemsize"),
+ py::arg("lengthtagname"),
+ py::arg("scalar"),
+ D(tagged_stream_multiply_length, make))
+
+
+ .def("set_scalar",
+ &tagged_stream_multiply_length::set_scalar,
+ py::arg("scalar"),
+ D(tagged_stream_multiply_length, set_scalar))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/tagged_stream_mux_python.cc b/gr-blocks/python/blocks/bindings/tagged_stream_mux_python.cc
new file mode 100644
index 0000000000..a6b37da370
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tagged_stream_mux_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/tagged_stream_mux.h>
+// pydoc.h is automatically generated in the build directory
+#include <tagged_stream_mux_pydoc.h>
+
+void bind_tagged_stream_mux(py::module& m)
+{
+
+ using tagged_stream_mux = ::gr::blocks::tagged_stream_mux;
+
+
+ py::class_<tagged_stream_mux,
+ gr::tagged_stream_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<tagged_stream_mux>>(
+ m, "tagged_stream_mux", D(tagged_stream_mux))
+
+ .def(py::init(&tagged_stream_mux::make),
+ py::arg("itemsize"),
+ py::arg("lengthtagname"),
+ py::arg("tag_preserve_head_pos") = 0,
+ D(tagged_stream_mux, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/tagged_stream_to_pdu_python.cc b/gr-blocks/python/blocks/bindings/tagged_stream_to_pdu_python.cc
new file mode 100644
index 0000000000..38c85a2a7b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tagged_stream_to_pdu_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/blocks/tagged_stream_to_pdu.h>
+// pydoc.h is automatically generated in the build directory
+#include <tagged_stream_to_pdu_pydoc.h>
+
+void bind_tagged_stream_to_pdu(py::module& m)
+{
+
+ using tagged_stream_to_pdu = ::gr::blocks::tagged_stream_to_pdu;
+
+
+ py::class_<tagged_stream_to_pdu,
+ gr::tagged_stream_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<tagged_stream_to_pdu>>(
+ m, "tagged_stream_to_pdu", D(tagged_stream_to_pdu))
+
+ .def(py::init(&tagged_stream_to_pdu::make),
+ py::arg("type"),
+ py::arg("lengthtagname") = "packet_len",
+ D(tagged_stream_to_pdu, make))
+
+
+ ;
+
+
+ py::module m_pdu = m.def_submodule("pdu");
+}
diff --git a/gr-blocks/python/blocks/bindings/tags_strobe_python.cc b/gr-blocks/python/blocks/bindings/tags_strobe_python.cc
new file mode 100644
index 0000000000..6023f2bf79
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tags_strobe_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/blocks/tags_strobe.h>
+// pydoc.h is automatically generated in the build directory
+#include <tags_strobe_pydoc.h>
+
+void bind_tags_strobe(py::module& m)
+{
+
+ using tags_strobe = ::gr::blocks::tags_strobe;
+
+
+ py::class_<tags_strobe,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<tags_strobe>>(m, "tags_strobe", D(tags_strobe))
+
+ .def(py::init(&tags_strobe::make),
+ py::arg("sizeof_stream_item"),
+ py::arg("value"),
+ py::arg("nsamps"),
+ py::arg("key") = pmt::intern("strobe"),
+ D(tags_strobe, make))
+
+
+ .def("set_value",
+ &tags_strobe::set_value,
+ py::arg("value"),
+ D(tags_strobe, set_value))
+
+
+ .def("set_key", &tags_strobe::set_key, py::arg("key"), D(tags_strobe, set_key))
+
+
+ .def("value", &tags_strobe::value, D(tags_strobe, value))
+
+
+ .def("key", &tags_strobe::key, D(tags_strobe, key))
+
+
+ .def("set_nsamps",
+ &tags_strobe::set_nsamps,
+ py::arg("nsamps"),
+ D(tags_strobe, set_nsamps))
+
+
+ .def("nsamps", &tags_strobe::nsamps, D(tags_strobe, nsamps))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/tcp_server_sink_python.cc b/gr-blocks/python/blocks/bindings/tcp_server_sink_python.cc
new file mode 100644
index 0000000000..905a633ab6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tcp_server_sink_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/tcp_server_sink.h>
+// pydoc.h is automatically generated in the build directory
+#include <tcp_server_sink_pydoc.h>
+
+void bind_tcp_server_sink(py::module& m)
+{
+
+ using tcp_server_sink = ::gr::blocks::tcp_server_sink;
+
+
+ py::class_<tcp_server_sink,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<tcp_server_sink>>(m, "tcp_server_sink", D(tcp_server_sink))
+
+ .def(py::init(&tcp_server_sink::make),
+ py::arg("itemsize"),
+ py::arg("host"),
+ py::arg("port"),
+ py::arg("noblock") = false,
+ D(tcp_server_sink, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/test_tag_variable_rate_ff_python.cc b/gr-blocks/python/blocks/bindings/test_tag_variable_rate_ff_python.cc
new file mode 100644
index 0000000000..aec41b5ae1
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/test_tag_variable_rate_ff_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/test_tag_variable_rate_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <test_tag_variable_rate_ff_pydoc.h>
+
+void bind_test_tag_variable_rate_ff(py::module& m)
+{
+
+ using test_tag_variable_rate_ff = ::gr::blocks::test_tag_variable_rate_ff;
+
+
+ py::class_<test_tag_variable_rate_ff,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<test_tag_variable_rate_ff>>(
+ m, "test_tag_variable_rate_ff", D(test_tag_variable_rate_ff))
+
+ .def(py::init(&test_tag_variable_rate_ff::make),
+ py::arg("update_once") = false,
+ py::arg("update_step") = 0.001,
+ D(test_tag_variable_rate_ff, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/threshold_ff_python.cc b/gr-blocks/python/blocks/bindings/threshold_ff_python.cc
new file mode 100644
index 0000000000..315a94b61b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/threshold_ff_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/blocks/threshold_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <threshold_ff_pydoc.h>
+
+void bind_threshold_ff(py::module& m)
+{
+
+ using threshold_ff = ::gr::blocks::threshold_ff;
+
+
+ py::class_<threshold_ff,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<threshold_ff>>(m, "threshold_ff", D(threshold_ff))
+
+ .def(py::init(&threshold_ff::make),
+ py::arg("lo"),
+ py::arg("hi"),
+ py::arg("initial_state") = 0,
+ D(threshold_ff, make))
+
+
+ .def("lo", &threshold_ff::lo, D(threshold_ff, lo))
+
+
+ .def("set_lo", &threshold_ff::set_lo, py::arg("lo"), D(threshold_ff, set_lo))
+
+
+ .def("hi", &threshold_ff::hi, D(threshold_ff, hi))
+
+
+ .def("set_hi", &threshold_ff::set_hi, py::arg("hi"), D(threshold_ff, set_hi))
+
+
+ .def("last_state", &threshold_ff::last_state, D(threshold_ff, last_state))
+
+
+ .def("set_last_state",
+ &threshold_ff::set_last_state,
+ py::arg("last_state"),
+ D(threshold_ff, set_last_state))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/throttle_python.cc b/gr-blocks/python/blocks/bindings/throttle_python.cc
new file mode 100644
index 0000000000..1fbbcab3f3
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/throttle_python.cc
@@ -0,0 +1,50 @@
+/*
+ * 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/blocks/throttle.h>
+// pydoc.h is automatically generated in the build directory
+#include <throttle_pydoc.h>
+
+void bind_throttle(py::module& m)
+{
+
+ using throttle = ::gr::blocks::throttle;
+
+
+ py::class_<throttle,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<throttle>>(m, "throttle", D(throttle))
+
+ .def(py::init(&throttle::make),
+ py::arg("itemsize"),
+ py::arg("samples_per_sec"),
+ py::arg("ignore_tags") = true,
+ D(throttle, make))
+
+
+ .def("set_sample_rate",
+ &throttle::set_sample_rate,
+ py::arg("rate"),
+ D(throttle, set_sample_rate))
+
+
+ .def("sample_rate", &throttle::sample_rate, D(throttle, sample_rate))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/transcendental_python.cc b/gr-blocks/python/blocks/bindings/transcendental_python.cc
new file mode 100644
index 0000000000..e3c319d56f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/transcendental_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/transcendental.h>
+// pydoc.h is automatically generated in the build directory
+#include <transcendental_pydoc.h>
+
+void bind_transcendental(py::module& m)
+{
+
+ using transcendental = ::gr::blocks::transcendental;
+
+
+ py::class_<transcendental,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<transcendental>>(m, "transcendental", D(transcendental))
+
+ .def(py::init(&transcendental::make),
+ py::arg("name"),
+ py::arg("type") = "float",
+ D(transcendental, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/tsb_vector_sink_python.cc b/gr-blocks/python/blocks/bindings/tsb_vector_sink_python.cc
new file mode 100644
index 0000000000..d1a3a03a91
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tsb_vector_sink_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/blocks/tsb_vector_sink.h>
+
+template <typename T>
+void bind_tsb_vector_sink_template(py::module& m, const char* classname)
+{
+ using tsb_vector_sink = gr::blocks::tsb_vector_sink<T>;
+
+ py::class_<tsb_vector_sink,
+ gr::tagged_stream_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<tsb_vector_sink>>(m, classname)
+ .def(py::init(&gr::blocks::tsb_vector_sink<T>::make),
+ py::arg("vlen") = (unsigned int)1,
+ py::arg("tsb_key") = std::string("ts_last"))
+ .def("reset", &tsb_vector_sink::reset)
+ .def("data", &tsb_vector_sink::data)
+ .def("tags", &tsb_vector_sink::tags);
+}
+
+void bind_tsb_vector_sink(py::module& m)
+{
+ bind_tsb_vector_sink_template<std::uint8_t>(m, "tsb_vector_sink_b");
+ bind_tsb_vector_sink_template<std::int16_t>(m, "tsb_vector_sink_s");
+ bind_tsb_vector_sink_template<std::int32_t>(m, "tsb_vector_sink_i");
+ bind_tsb_vector_sink_template<float>(m, "tsb_vector_sink_f");
+ bind_tsb_vector_sink_template<gr_complex>(m, "tsb_vector_sink_c");
+}
diff --git a/gr-blocks/python/blocks/bindings/tuntap_pdu_python.cc b/gr-blocks/python/blocks/bindings/tuntap_pdu_python.cc
new file mode 100644
index 0000000000..e3591b3a9f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/tuntap_pdu_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/tuntap_pdu.h>
+// pydoc.h is automatically generated in the build directory
+#include <tuntap_pdu_pydoc.h>
+
+void bind_tuntap_pdu(py::module& m)
+{
+
+ using tuntap_pdu = ::gr::blocks::tuntap_pdu;
+
+
+ py::class_<tuntap_pdu, gr::block, gr::basic_block, std::shared_ptr<tuntap_pdu>>(
+ m, "tuntap_pdu", D(tuntap_pdu))
+
+ .def(py::init(&tuntap_pdu::make),
+ py::arg("dev"),
+ py::arg("MTU") = 10000,
+ py::arg("istunflag") = false,
+ D(tuntap_pdu, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/uchar_to_float_python.cc b/gr-blocks/python/blocks/bindings/uchar_to_float_python.cc
new file mode 100644
index 0000000000..183245c6e6
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/uchar_to_float_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/blocks/uchar_to_float.h>
+// pydoc.h is automatically generated in the build directory
+#include <uchar_to_float_pydoc.h>
+
+void bind_uchar_to_float(py::module& m)
+{
+
+ using uchar_to_float = ::gr::blocks::uchar_to_float;
+
+
+ py::class_<uchar_to_float,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<uchar_to_float>>(m, "uchar_to_float", D(uchar_to_float))
+
+ .def(py::init(&uchar_to_float::make), D(uchar_to_float, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/udp_sink_python.cc b/gr-blocks/python/blocks/bindings/udp_sink_python.cc
new file mode 100644
index 0000000000..e871639611
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/udp_sink_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/blocks/udp_sink.h>
+// pydoc.h is automatically generated in the build directory
+#include <udp_sink_pydoc.h>
+
+void bind_udp_sink(py::module& m)
+{
+
+ using udp_sink = ::gr::blocks::udp_sink;
+
+
+ py::class_<udp_sink,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<udp_sink>>(m, "udp_sink", D(udp_sink))
+
+ .def(py::init(&udp_sink::make),
+ py::arg("itemsize"),
+ py::arg("host"),
+ py::arg("port"),
+ py::arg("payload_size") = 1472,
+ py::arg("eof") = true,
+ D(udp_sink, make))
+
+
+ .def("payload_size", &udp_sink::payload_size, D(udp_sink, payload_size))
+
+
+ .def("connect",
+ &udp_sink::connect,
+ py::arg("host"),
+ py::arg("port"),
+ D(udp_sink, connect))
+
+
+ .def("disconnect", &udp_sink::disconnect, D(udp_sink, disconnect))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/udp_source_python.cc b/gr-blocks/python/blocks/bindings/udp_source_python.cc
new file mode 100644
index 0000000000..f401929700
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/udp_source_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/blocks/udp_source.h>
+// pydoc.h is automatically generated in the build directory
+#include <udp_source_pydoc.h>
+
+void bind_udp_source(py::module& m)
+{
+
+ using udp_source = ::gr::blocks::udp_source;
+
+
+ py::class_<udp_source,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<udp_source>>(m, "udp_source", D(udp_source))
+
+ .def(py::init(&udp_source::make),
+ py::arg("itemsize"),
+ py::arg("host"),
+ py::arg("port"),
+ py::arg("payload_size") = 1472,
+ py::arg("eof") = true,
+ D(udp_source, make))
+
+
+ .def("connect",
+ &udp_source::connect,
+ py::arg("host"),
+ py::arg("port"),
+ D(udp_source, connect))
+
+
+ .def("disconnect", &udp_source::disconnect, D(udp_source, disconnect))
+
+
+ .def("payload_size", &udp_source::payload_size, D(udp_source, payload_size))
+
+
+ .def("get_port", &udp_source::get_port, D(udp_source, get_port))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/unpack_k_bits_bb_python.cc b/gr-blocks/python/blocks/bindings/unpack_k_bits_bb_python.cc
new file mode 100644
index 0000000000..bc419e78c8
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/unpack_k_bits_bb_python.cc
@@ -0,0 +1,40 @@
+/*
+ * 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/blocks/unpack_k_bits_bb.h>
+// pydoc.h is automatically generated in the build directory
+#include <unpack_k_bits_bb_pydoc.h>
+
+void bind_unpack_k_bits_bb(py::module& m)
+{
+
+ using unpack_k_bits_bb = ::gr::blocks::unpack_k_bits_bb;
+
+
+ py::class_<unpack_k_bits_bb,
+ gr::sync_interpolator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<unpack_k_bits_bb>>(
+ m, "unpack_k_bits_bb", D(unpack_k_bits_bb))
+
+ .def(py::init(&unpack_k_bits_bb::make), py::arg("k"), D(unpack_k_bits_bb, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/unpack_k_bits_python.cc b/gr-blocks/python/blocks/bindings/unpack_k_bits_python.cc
new file mode 100644
index 0000000000..999929fcb3
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/unpack_k_bits_python.cc
@@ -0,0 +1,61 @@
+/*
+ * 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/blocks/unpack_k_bits.h>
+// pydoc.h is automatically generated in the build directory
+#include <unpack_k_bits_pydoc.h>
+
+void bind_unpack_k_bits(py::module& m)
+{
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+
+ using unpack_k_bits = ::gr::blocks::kernel::unpack_k_bits;
+
+
+ py::class_<unpack_k_bits, std::shared_ptr<unpack_k_bits>>(
+ m_kernel, "unpack_k_bits", D(kernel, unpack_k_bits))
+
+ .def(py::init<unsigned int>(),
+ py::arg("k"),
+ D(kernel, unpack_k_bits, unpack_k_bits, 0))
+ .def(py::init<gr::blocks::kernel::unpack_k_bits const&>(),
+ py::arg("arg0"),
+ D(kernel, unpack_k_bits, unpack_k_bits, 1))
+
+
+ .def("unpack",
+ &unpack_k_bits::unpack,
+ py::arg("bits"),
+ py::arg("bytes"),
+ py::arg("nbytes"),
+ D(kernel, unpack_k_bits, unpack))
+
+
+ .def("unpack_rev",
+ &unpack_k_bits::unpack_rev,
+ py::arg("bits"),
+ py::arg("bytes"),
+ py::arg("nbytes"),
+ D(kernel, unpack_k_bits, unpack_rev))
+
+
+ .def("k", &unpack_k_bits::k, D(kernel, unpack_k_bits, k))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/unpacked_to_packed_python.cc b/gr-blocks/python/blocks/bindings/unpacked_to_packed_python.cc
new file mode 100644
index 0000000000..add810cc78
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/unpacked_to_packed_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/unpacked_to_packed.h>
+
+template <typename T>
+void bind_unpacked_to_packed_template(py::module& m, const char* classname)
+{
+ using unpacked_to_packed = gr::blocks::unpacked_to_packed<T>;
+
+ py::class_<unpacked_to_packed,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<unpacked_to_packed>>(m, classname)
+ .def(py::init(&gr::blocks::unpacked_to_packed<T>::make),
+ py::arg("bits_per_chunk"),
+ py::arg("endianness"));
+}
+
+void bind_unpacked_to_packed(py::module& m)
+{
+ bind_unpacked_to_packed_template<std::int16_t>(m, "unpacked_to_packed_ss");
+ bind_unpacked_to_packed_template<std::int32_t>(m, "unpacked_to_packed_ii");
+ bind_unpacked_to_packed_template<std::uint8_t>(m, "unpacked_to_packed_bb");
+}
diff --git a/gr-blocks/python/blocks/bindings/vco_c_python.cc b/gr-blocks/python/blocks/bindings/vco_c_python.cc
new file mode 100644
index 0000000000..fc9026c7ce
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/vco_c_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/vco_c.h>
+// pydoc.h is automatically generated in the build directory
+#include <vco_c_pydoc.h>
+
+void bind_vco_c(py::module& m)
+{
+
+ using vco_c = ::gr::blocks::vco_c;
+
+
+ py::class_<vco_c, gr::sync_block, gr::block, gr::basic_block, std::shared_ptr<vco_c>>(
+ m, "vco_c", D(vco_c))
+
+ .def(py::init(&vco_c::make),
+ py::arg("sampling_rate"),
+ py::arg("sensitivity"),
+ py::arg("amplitude"),
+ D(vco_c, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/vco_f_python.cc b/gr-blocks/python/blocks/bindings/vco_f_python.cc
new file mode 100644
index 0000000000..8bd007c213
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/vco_f_python.cc
@@ -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
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/blocks/vco_f.h>
+// pydoc.h is automatically generated in the build directory
+#include <vco_f_pydoc.h>
+
+void bind_vco_f(py::module& m)
+{
+
+ using vco_f = ::gr::blocks::vco_f;
+
+
+ py::class_<vco_f, gr::sync_block, gr::block, gr::basic_block, std::shared_ptr<vco_f>>(
+ m, "vco_f", D(vco_f))
+
+ .def(py::init(&vco_f::make),
+ py::arg("sampling_rate"),
+ py::arg("sensitivity"),
+ py::arg("amplitude"),
+ D(vco_f, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/vector_insert_python.cc b/gr-blocks/python/blocks/bindings/vector_insert_python.cc
new file mode 100644
index 0000000000..722c5594b1
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/vector_insert_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/blocks/vector_insert.h>
+
+template <typename T>
+void bind_vector_insert_template(py::module& m, const char* classname)
+{
+ using vector_insert = gr::blocks::vector_insert<T>;
+
+ py::class_<vector_insert, gr::block, gr::basic_block, std::shared_ptr<vector_insert>>(
+ m, classname)
+ .def(py::init(&gr::blocks::vector_insert<T>::make),
+ py::arg("data"),
+ py::arg("periodicity"),
+ py::arg("offset") = 0)
+ .def("rewind", &vector_insert::rewind)
+ .def("set_data", &vector_insert::set_data, py::arg("set_data"));
+}
+
+void bind_vector_insert(py::module& m)
+{
+ bind_vector_insert_template<std::uint8_t>(m, "vector_insert_b");
+ bind_vector_insert_template<std::int16_t>(m, "vector_insert_s");
+ bind_vector_insert_template<std::int32_t>(m, "vector_insert_i");
+ bind_vector_insert_template<float>(m, "vector_insert_f");
+ bind_vector_insert_template<gr_complex>(m, "vector_insert_c");
+}
diff --git a/gr-blocks/python/blocks/bindings/vector_map_python.cc b/gr-blocks/python/blocks/bindings/vector_map_python.cc
new file mode 100644
index 0000000000..46d588325b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/vector_map_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/blocks/vector_map.h>
+// pydoc.h is automatically generated in the build directory
+#include <vector_map_pydoc.h>
+
+void bind_vector_map(py::module& m)
+{
+
+ using vector_map = ::gr::blocks::vector_map;
+
+
+ py::class_<vector_map,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<vector_map>>(m, "vector_map", D(vector_map))
+
+ .def(py::init(&vector_map::make),
+ py::arg("item_size"),
+ py::arg("in_vlens"),
+ py::arg("mapping"),
+ D(vector_map, make))
+
+
+ .def("set_mapping",
+ &vector_map::set_mapping,
+ py::arg("mapping"),
+ D(vector_map, set_mapping))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/vector_sink_python.cc b/gr-blocks/python/blocks/bindings/vector_sink_python.cc
new file mode 100644
index 0000000000..fe6e90b83f
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/vector_sink_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/blocks/vector_sink.h>
+
+template <typename T>
+void bind_vector_sink_template(py::module& m, const char* classname)
+{
+ using vector_sink = gr::blocks::vector_sink<T>;
+
+ py::class_<vector_sink,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<vector_sink>>(m, classname)
+ .def(py::init(&gr::blocks::vector_sink<T>::make),
+ py::arg("vlen") = 1,
+ py::arg("reserve_items") = 1024)
+ .def("reset", &vector_sink::reset)
+ .def("data", &vector_sink::data)
+ .def("tags", &vector_sink::tags);
+}
+
+void bind_vector_sink(py::module& m)
+{
+ bind_vector_sink_template<std::uint8_t>(m, "vector_sink_b");
+ bind_vector_sink_template<std::int16_t>(m, "vector_sink_s");
+ bind_vector_sink_template<std::int32_t>(m, "vector_sink_i");
+ bind_vector_sink_template<float>(m, "vector_sink_f");
+ bind_vector_sink_template<gr_complex>(m, "vector_sink_c");
+}
diff --git a/gr-blocks/python/blocks/bindings/vector_source_python.cc b/gr-blocks/python/blocks/bindings/vector_source_python.cc
new file mode 100644
index 0000000000..0919e7bb31
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/vector_source_python.cc
@@ -0,0 +1,63 @@
+/*
+ * 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/blocks/vector_source.h>
+#include <gnuradio/sync_block.h>
+#include <gnuradio/tags.h>
+
+template <typename T>
+void bind_vector_source_template(py::module& m, const char* classname)
+{
+ // using vector_source = gr::blocks::vector_source<T>;
+
+
+ py::class_<gr::blocks::vector_source<T>,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<gr::blocks::vector_source<T>>>(m, classname)
+ .def(py::init(&gr::blocks::vector_source<T>::make),
+ py::arg("data"),
+ py::arg("repeat") = false,
+ py::arg("vlen") = 1,
+ py::arg("tags") = std::vector<gr::tag_t>())
+
+
+ // With these templated classes, the additional class members cause the compiler
+ // error
+ // error: expected ‘;’ before ‘)’ token
+ // .def("rewind", &gr::blocks::vector_source<T>::rewind))
+ // ^
+
+ .def("rewind", &gr::blocks::vector_source<T>::rewind)
+ .def("set_data",
+ &gr::blocks::vector_source<T>::set_data,
+ py::arg("data"),
+ py::arg("tags") = std::vector<gr::tag_t>())
+ .def("set_repeat", &gr::blocks::vector_source<T>::set_repeat, py::arg("repeat"))
+
+ ;
+}
+
+void bind_vector_source(py::module& m)
+{
+ bind_vector_source_template<std::uint8_t>(m, "vector_source_b");
+ bind_vector_source_template<std::int16_t>(m, "vector_source_s");
+ bind_vector_source_template<std::int32_t>(m, "vector_source_i");
+ bind_vector_source_template<float>(m, "vector_source_f");
+ bind_vector_source_template<gr_complex>(m, "vector_source_c");
+}
diff --git a/gr-blocks/python/blocks/bindings/vector_to_stream_python.cc b/gr-blocks/python/blocks/bindings/vector_to_stream_python.cc
new file mode 100644
index 0000000000..c80a11d90e
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/vector_to_stream_python.cc
@@ -0,0 +1,43 @@
+/*
+ * 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/blocks/vector_to_stream.h>
+// pydoc.h is automatically generated in the build directory
+#include <vector_to_stream_pydoc.h>
+
+void bind_vector_to_stream(py::module& m)
+{
+
+ using vector_to_stream = ::gr::blocks::vector_to_stream;
+
+
+ py::class_<vector_to_stream,
+ gr::sync_interpolator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<vector_to_stream>>(
+ m, "vector_to_stream", D(vector_to_stream))
+
+ .def(py::init(&vector_to_stream::make),
+ py::arg("itemsize"),
+ py::arg("nitems_per_block"),
+ D(vector_to_stream, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/vector_to_streams_python.cc b/gr-blocks/python/blocks/bindings/vector_to_streams_python.cc
new file mode 100644
index 0000000000..ef4d44da3b
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/vector_to_streams_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/blocks/vector_to_streams.h>
+// pydoc.h is automatically generated in the build directory
+#include <vector_to_streams_pydoc.h>
+
+void bind_vector_to_streams(py::module& m)
+{
+
+ using vector_to_streams = ::gr::blocks::vector_to_streams;
+
+
+ py::class_<vector_to_streams,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<vector_to_streams>>(
+ m, "vector_to_streams", D(vector_to_streams))
+
+ .def(py::init(&vector_to_streams::make),
+ py::arg("itemsize"),
+ py::arg("nstreams"),
+ D(vector_to_streams, make))
+
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/wavfile_python.cc b/gr-blocks/python/blocks/bindings/wavfile_python.cc
new file mode 100644
index 0000000000..70f4df7965
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/wavfile_python.cc
@@ -0,0 +1,70 @@
+/*
+ * 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/blocks/wavfile.h>
+// pydoc.h is automatically generated in the build directory
+#include <wavfile_pydoc.h>
+
+void bind_wavfile(py::module& m)
+{
+ using wav_header_info = gr::blocks::wav_header_info;
+
+ py::class_<wav_header_info, std::shared_ptr<wav_header_info>>(m, "wav_header_info")
+ .def_readwrite("sample_rate",&wav_header_info::sample_rate)
+ .def_readwrite("nchans",&wav_header_info::nchans)
+ .def_readwrite("bytes_per_sample",&wav_header_info::bytes_per_sample)
+ .def_readwrite("first_sample_pos",&wav_header_info::first_sample_pos)
+ .def_readwrite("samples_per_chan",&wav_header_info::samples_per_chan)
+ .def_readwrite("data_chunk_size",&wav_header_info::data_chunk_size)
+ ;
+
+ m.def("wavheader_parse",
+ &::gr::blocks::wavheader_parse,
+ py::arg("fp"),
+ py::arg("info"),
+ D(wavheader_parse));
+
+ m.def("wav_read_sample",
+ &::gr::blocks::wav_read_sample,
+ py::arg("fp"),
+ py::arg("bytes_per_sample"),
+ D(wav_read_sample));
+
+
+ m.def("wavheader_write",
+ &::gr::blocks::wavheader_write,
+ py::arg("fp"),
+ py::arg("sample_rate"),
+ py::arg("nchans"),
+ py::arg("bytes_per_sample"),
+ D(wavheader_write));
+
+
+ m.def("wav_write_sample",
+ &::gr::blocks::wav_write_sample,
+ py::arg("fp"),
+ py::arg("sample"),
+ py::arg("bytes_per_sample"),
+ D(wav_write_sample));
+
+
+ m.def("wavheader_complete",
+ &::gr::blocks::wavheader_complete,
+ py::arg("fp"),
+ py::arg("byte_count"),
+ D(wavheader_complete));
+}
diff --git a/gr-blocks/python/blocks/bindings/wavfile_sink_python.cc b/gr-blocks/python/blocks/bindings/wavfile_sink_python.cc
new file mode 100644
index 0000000000..f94e201e33
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/wavfile_sink_python.cc
@@ -0,0 +1,61 @@
+/*
+ * 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/blocks/wavfile_sink.h>
+// pydoc.h is automatically generated in the build directory
+#include <wavfile_sink_pydoc.h>
+
+void bind_wavfile_sink(py::module& m)
+{
+
+ using wavfile_sink = ::gr::blocks::wavfile_sink;
+
+
+ py::class_<wavfile_sink,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<wavfile_sink>>(m, "wavfile_sink", D(wavfile_sink))
+
+ .def(py::init(&wavfile_sink::make),
+ py::arg("filename"),
+ py::arg("n_channels"),
+ py::arg("sample_rate"),
+ py::arg("bits_per_sample") = 16,
+ py::arg("append") = false,
+ D(wavfile_sink, make))
+
+
+ .def("open", &wavfile_sink::open, py::arg("filename"), D(wavfile_sink, open))
+
+
+ .def("close", &wavfile_sink::close, D(wavfile_sink, close))
+
+
+ .def("set_sample_rate",
+ &wavfile_sink::set_sample_rate,
+ py::arg("sample_rate"),
+ D(wavfile_sink, set_sample_rate))
+
+
+ .def("set_bits_per_sample",
+ &wavfile_sink::set_bits_per_sample,
+ py::arg("bits_per_sample"),
+ D(wavfile_sink, set_bits_per_sample))
+
+ ;
+}
diff --git a/gr-blocks/python/blocks/bindings/wavfile_source_python.cc b/gr-blocks/python/blocks/bindings/wavfile_source_python.cc
new file mode 100644
index 0000000000..b0662c93cd
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/wavfile_source_python.cc
@@ -0,0 +1,51 @@
+/*
+ * 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/blocks/wavfile_source.h>
+// pydoc.h is automatically generated in the build directory
+#include <wavfile_source_pydoc.h>
+
+void bind_wavfile_source(py::module& m)
+{
+
+ using wavfile_source = ::gr::blocks::wavfile_source;
+
+
+ py::class_<wavfile_source,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<wavfile_source>>(m, "wavfile_source", D(wavfile_source))
+
+ .def(py::init(&wavfile_source::make),
+ py::arg("filename"),
+ py::arg("repeat") = false,
+ D(wavfile_source, make))
+
+
+ .def("sample_rate", &wavfile_source::sample_rate, D(wavfile_source, sample_rate))
+
+
+ .def("bits_per_sample",
+ &wavfile_source::bits_per_sample,
+ D(wavfile_source, bits_per_sample))
+
+
+ .def("channels", &wavfile_source::channels, D(wavfile_source, channels))
+
+ ;
+} \ No newline at end of file
diff --git a/gr-blocks/python/blocks/bindings/xor_blk_python.cc b/gr-blocks/python/blocks/bindings/xor_blk_python.cc
new file mode 100644
index 0000000000..7c380384ce
--- /dev/null
+++ b/gr-blocks/python/blocks/bindings/xor_blk_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/blocks/xor_blk.h>
+
+template <typename T>
+void bind_xor_blk_template(py::module& m, const char* classname)
+{
+ using xor_blk = gr::blocks::xor_blk<T>;
+
+ py::class_<xor_blk,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<xor_blk>>(m, classname)
+ .def(py::init(&gr::blocks::xor_blk<T>::make), py::arg("vlen") = 1);
+}
+
+void bind_xor_blk(py::module& m)
+{
+ bind_xor_blk_template<std::uint8_t>(m, "xor_bb");
+ bind_xor_blk_template<std::int16_t>(m, "xor_ss");
+ bind_xor_blk_template<std::int32_t>(m, "xor_ii");
+}
diff --git a/gr-blocks/python/blocks/qa_add_mult_div_sub.py b/gr-blocks/python/blocks/qa_add_mult_div_sub.py
index 19636b0243..83a1e203e0 100644
--- a/gr-blocks/python/blocks/qa_add_mult_div_sub.py
+++ b/gr-blocks/python/blocks/qa_add_mult_div_sub.py
@@ -62,89 +62,89 @@ class test_add_mult_div_sub(gr_unittest.TestCase):
# add_XX
def test_add_ss(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (8, -3, 4, 8, 2)
- expected_result = (9, -1, 7, 12, 7)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [8, -3, 4, 8, 2]
+ expected_result = [9, -1, 7, 12, 7]
op = blocks.add_ss()
self.help_ss((src1_data, src2_data), expected_result, op)
def test_add_ii(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (8, -3, 4, 8, 2)
- expected_result = (9, -1, 7, 12, 7)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [8, -3, 4, 8, 2]
+ expected_result = [9, -1, 7, 12, 7]
op = blocks.add_ii()
self.help_ii((src1_data, src2_data), expected_result, op)
def test_add_ff(self):
- src1_data = (1.0, 2.0, 3.0, 4.0, 5.0)
- src2_data = (8.0, -3.0, 4.0, 8.0, 2.0)
- expected_result = (9.0, -1.0, 7.0, 12.0, 7.0)
+ src1_data = [1.0, 2.0, 3.0, 4.0, 5.0]
+ src2_data = [8.0, -3.0, 4.0, 8.0, 2.0]
+ expected_result = [9.0, -1.0, 7.0, 12.0, 7.0]
op = blocks.add_ff()
self.help_ff((src1_data, src2_data), expected_result, op)
def test_add_cc(self):
- src1_data = (1+1j, 2+2j, 3+3j, 4+4j, 5+5j)
- src2_data = (8+8j, -3-3j, 4+4j, 8+8j, 2+2j)
- expected_result = (9+9j, -1-1j, 7+7j, 12+12j, 7+7j)
+ src1_data = [1+1j, 2+2j, 3+3j, 4+4j, 5+5j]
+ src2_data = [8+8j, -3-3j, 4+4j, 8+8j, 2+2j]
+ expected_result = [9+9j, -1-1j, 7+7j, 12+12j, 7+7j]
op = blocks.add_cc()
self.help_cc((src1_data, src2_data), expected_result, op)
# add_const_XX
def test_add_const_ss(self):
- src_data = (1, 2, 3, 4, 5)
- expected_result = (6, 7, 8, 9, 10)
+ src_data = [1, 2, 3, 4, 5]
+ expected_result = [6, 7, 8, 9, 10]
op = blocks.add_const_ss(5)
self.help_ss((src_data,), expected_result, op)
def test_add_const_ii(self):
- src_data = (1, 2, 3, 4, 5)
- expected_result = (6, 7, 8, 9, 10)
+ src_data = [1, 2, 3, 4, 5]
+ expected_result = [6, 7, 8, 9, 10]
op = blocks.add_const_ii(5)
self.help_ii((src_data,), expected_result, op)
def test_add_const_ff(self):
- src_data = (1, 2, 3, 4, 5)
- expected_result = (6, 7, 8, 9, 10)
+ src_data = [1, 2, 3, 4, 5]
+ expected_result = [6, 7, 8, 9, 10]
op = blocks.add_const_ff(5)
self.help_ff((src_data,), expected_result, op)
def test_add_const_cc(self):
- src_data = (1, 2, 3, 4, 5)
- expected_result = (1+5j, 2+5j, 3+5j, 4+5j, 5+5j)
+ src_data = [1, 2, 3, 4, 5]
+ expected_result = [1+5j, 2+5j, 3+5j, 4+5j, 5+5j]
op = blocks.add_const_cc(5j)
self.help_cc((src_data,), expected_result, op)
# multiply_XX
def test_multiply_ss(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (8, -3, 4, 8, 2)
- expected_result = (8, -6, 12, 32, 10)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [8, -3, 4, 8, 2]
+ expected_result = [8, -6, 12, 32, 10]
op = blocks.multiply_ss()
self.help_ss((src1_data, src2_data),
expected_result, op)
def test_multiply_ii(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (8, -3, 4, 8, 2)
- expected_result = (8, -6, 12, 32, 10)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [8, -3, 4, 8, 2]
+ expected_result = [8, -6, 12, 32, 10]
op = blocks.multiply_ii()
self.help_ii((src1_data, src2_data),
expected_result, op)
def test_multiply_ff(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (8, -3, 4, 8, 2)
- expected_result = (8, -6, 12, 32, 10)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [8, -3, 4, 8, 2]
+ expected_result = [8, -6, 12, 32, 10]
op = blocks.multiply_ff()
self.help_ff((src1_data, src2_data),
expected_result, op)
def test_multiply_cc(self):
- src1_data = (1+1j, 2+2j, 3+3j, 4+4j, 5+5j)
- src2_data = (8, -3, 4, 8, 2)
- expected_result = (8+8j, -6-6j, 12+12j, 32+32j, 10+10j)
+ src1_data = [1+1j, 2+2j, 3+3j, 4+4j, 5+5j]
+ src2_data = [8, -3, 4, 8, 2]
+ expected_result = [8+8j, -6-6j, 12+12j, 32+32j, 10+10j]
op = blocks.multiply_cc()
self.help_cc((src1_data, src2_data),
expected_result, op)
@@ -152,46 +152,46 @@ class test_add_mult_div_sub(gr_unittest.TestCase):
# multiply_const_XX
def test_multiply_const_ss(self):
- src_data = (-1, 0, 1, 2, 3)
- expected_result = (-5, 0, 5, 10, 15)
+ src_data = [-1, 0, 1, 2, 3]
+ expected_result = [-5, 0, 5, 10, 15]
op = blocks.multiply_const_ss(5)
self.help_ss((src_data,), expected_result, op)
def test_multiply_const_ii(self):
- src_data = (-1, 0, 1, 2, 3)
- expected_result = (-5, 0, 5, 10, 15)
+ src_data = [-1, 0, 1, 2, 3]
+ expected_result = [-5, 0, 5, 10, 15]
op = blocks.multiply_const_ii(5)
self.help_ii((src_data,), expected_result, op)
def test_multiply_const_ff(self):
- src_data = (-1, 0, 1, 2, 3)
- expected_result = (-5, 0, 5, 10, 15)
+ src_data = [-1, 0, 1, 2, 3]
+ expected_result = [-5, 0, 5, 10, 15]
op = blocks.multiply_const_ff(5)
self.help_ff((src_data,), expected_result, op)
def test_multiply_const_cc(self):
- src_data = (-1-1j, 0+0j, 1+1j, 2+2j, 3+3j)
- expected_result = (-5-5j, 0+0j, 5+5j, 10+10j, 15+15j)
+ src_data = [-1-1j, 0+0j, 1+1j, 2+2j, 3+3j]
+ expected_result = [-5-5j, 0+0j, 5+5j, 10+10j, 15+15j]
op = blocks.multiply_const_cc(5)
self.help_cc((src_data,), expected_result, op)
def test_multiply_const_cc2(self):
- src_data = (-1-1j, 0+0j, 1+1j, 2+2j, 3+3j)
- expected_result = (-3-7j, 0+0j, 3+7j, 6+14j, 9+21j)
+ src_data = [-1-1j, 0+0j, 1+1j, 2+2j, 3+3j]
+ expected_result = [-3-7j, 0+0j, 3+7j, 6+14j, 9+21j]
op = blocks.multiply_const_cc(5+2j)
self.help_cc((src_data,), expected_result, op)
def test_sub_ii(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (8, -3, 4, 8, 2)
- expected_result = (-7, 5, -1, -4, 3)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [8, -3, 4, 8, 2]
+ expected_result = [-7, 5, -1, -4, 3]
op = blocks.sub_ii()
self.help_ii((src1_data, src2_data),
expected_result, op)
def test_sub_ii1(self):
- src1_data = (1, 2, 3, 4, 5)
- expected_result = (1, 2, 3, 4, 5)
+ src1_data = [1, 2, 3, 4, 5]
+ expected_result = [1, 2, 3, 4, 5]
src = blocks.vector_source_i(src1_data)
op = blocks.sub_ii()
@@ -202,16 +202,16 @@ class test_add_mult_div_sub(gr_unittest.TestCase):
self.assertEqual(expected_result, result_data)
def test_sub_ss(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (8, -3, 4, 8, 2)
- expected_result = (-7, 5, -1, -4, 3)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [8, -3, 4, 8, 2]
+ expected_result = [-7, 5, -1, -4, 3]
op = blocks.sub_ss()
self.help_ss((src1_data, src2_data),
expected_result, op)
def test_sub_ss1(self):
- src1_data = (1, 2, 3, 4, 5)
- expected_result = (1, 2, 3, 4, 5)
+ src1_data = [1, 2, 3, 4, 5]
+ expected_result = [1, 2, 3, 4, 5]
src = blocks.vector_source_s(src1_data)
op = blocks.sub_ss()
@@ -222,16 +222,16 @@ class test_add_mult_div_sub(gr_unittest.TestCase):
self.assertEqual(expected_result, result_data)
def test_sub_ff(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (8, -3, 4, 8, 2)
- expected_result = (-7, 5, -1, -4, 3)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [8, -3, 4, 8, 2]
+ expected_result = [-7, 5, -1, -4, 3]
op = blocks.sub_ff()
self.help_ff((src1_data, src2_data),
expected_result, op)
def test_sub_ff1(self):
- src1_data = (1, 2, 3, 4, 5)
- expected_result = (1, 2, 3, 4, 5)
+ src1_data = [1, 2, 3, 4, 5]
+ expected_result = [1, 2, 3, 4, 5]
src = blocks.vector_source_f(src1_data)
op = blocks.sub_ff()
@@ -242,16 +242,16 @@ class test_add_mult_div_sub(gr_unittest.TestCase):
self.assertEqual(expected_result, result_data)
def test_sub_cc(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (8, -3, 4, 8, 2)
- expected_result = (-7, 5, -1, -4, 3)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [8, -3, 4, 8, 2]
+ expected_result = [-7, 5, -1, -4, 3]
op = blocks.sub_cc()
self.help_cc((src1_data, src2_data),
expected_result, op)
def test_sub_cc1(self):
- src1_data = (1, 2, 3, 4, 5)
- expected_result = (1, 2, 3, 4, 5)
+ src1_data = [1, 2, 3, 4, 5]
+ expected_result = [1, 2, 3, 4, 5]
src = blocks.vector_source_c(src1_data)
op = blocks.sub_cc()
@@ -262,9 +262,9 @@ class test_add_mult_div_sub(gr_unittest.TestCase):
self.assertEqual(expected_result, result_data)
def test_div_ff(self):
- src1_data = ( 5, 9, -15, 1024)
- src2_data = (10, 3, -5, 64)
- expected_result = (0.5, 3, 3, 16)
+ src1_data = [ 5, 9, -15, 1024]
+ src2_data = [10, 3, -5, 64]
+ expected_result = [0.5, 3, 3, 16]
op = blocks.divide_ff()
self.help_ff((src1_data, src2_data), expected_result, op)
diff --git a/gr-blocks/python/blocks/qa_add_mult_v.py b/gr-blocks/python/blocks/qa_add_mult_v.py
index c5bf9ea280..a5ae5e4181 100644
--- a/gr-blocks/python/blocks/qa_add_mult_v.py
+++ b/gr-blocks/python/blocks/qa_add_mult_v.py
@@ -118,233 +118,233 @@ class test_add_mult_v(gr_unittest.TestCase):
# add_vXX
def test_add_vss_one(self):
- src1_data = (1,)
- src2_data = (2,)
- src3_data = (3,)
- expected_result = (6,)
+ src1_data = [1,]
+ src2_data = [2,]
+ src3_data = [3,]
+ expected_result = [6,]
op = blocks.add_ss(1)
self.help_ss(1, (src1_data, src2_data, src3_data), expected_result, op)
def test_add_vss_five(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (6, 7, 8, 9, 10)
- src3_data = (11, 12, 13, 14, 15)
- expected_result = (18, 21, 24, 27, 30)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [6, 7, 8, 9, 10]
+ src3_data = [11, 12, 13, 14, 15]
+ expected_result = [18, 21, 24, 27, 30]
op = blocks.add_ss(5)
self.help_ss(5, (src1_data, src2_data, src3_data), expected_result, op)
def test_add_vii_one(self):
- src1_data = (1,)
- src2_data = (2,)
- src3_data = (3,)
- expected_result = (6,)
+ src1_data = [1,]
+ src2_data = [2,]
+ src3_data = [3,]
+ expected_result = [6,]
op = blocks.add_ii(1)
self.help_ii(1, (src1_data, src2_data, src3_data), expected_result, op)
def test_add_vii_five(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (6, 7, 8, 9, 10)
- src3_data = (11, 12, 13, 14, 15)
- expected_result = (18, 21, 24, 27, 30)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [6, 7, 8, 9, 10]
+ src3_data = [11, 12, 13, 14, 15]
+ expected_result = [18, 21, 24, 27, 30]
op = blocks.add_ii(5)
self.help_ii(5, (src1_data, src2_data, src3_data), expected_result, op)
def test_add_vff_one(self):
- src1_data = (1.0,)
- src2_data = (2.0,)
- src3_data = (3.0,)
- expected_result = (6.0,)
+ src1_data = [1.0,]
+ src2_data = [2.0,]
+ src3_data = [3.0,]
+ expected_result = [6.0,]
op = blocks.add_ff(1)
self.help_ff(1, (src1_data, src2_data, src3_data), expected_result, op)
def test_add_vff_five(self):
- src1_data = (1.0, 2.0, 3.0, 4.0, 5.0)
- src2_data = (6.0, 7.0, 8.0, 9.0, 10.0)
- src3_data = (11.0, 12.0, 13.0, 14.0, 15.0)
- expected_result = (18.0, 21.0, 24.0, 27.0, 30.0)
+ src1_data = [1.0, 2.0, 3.0, 4.0, 5.0]
+ src2_data = [6.0, 7.0, 8.0, 9.0, 10.0]
+ src3_data = [11.0, 12.0, 13.0, 14.0, 15.0]
+ expected_result = [18.0, 21.0, 24.0, 27.0, 30.0]
op = blocks.add_ff(5)
self.help_ff(5, (src1_data, src2_data, src3_data), expected_result, op)
def test_add_vcc_one(self):
- src1_data = (1.0+2.0j,)
- src2_data = (3.0+4.0j,)
- src3_data = (5.0+6.0j,)
- expected_result = (9.0+12j,)
+ src1_data = [1.0+2.0j,]
+ src2_data = [3.0+4.0j,]
+ src3_data = [5.0+6.0j,]
+ expected_result = [9.0+12j,]
op = blocks.add_cc(1)
self.help_cc(1, (src1_data, src2_data, src3_data), expected_result, op)
def test_add_vcc_five(self):
- src1_data = (1.0+2.0j, 3.0+4.0j, 5.0+6.0j, 7.0+8.0j, 9.0+10.0j)
- src2_data = (11.0+12.0j, 13.0+14.0j, 15.0+16.0j, 17.0+18.0j, 19.0+20.0j)
- src3_data = (21.0+22.0j, 23.0+24.0j, 25.0+26.0j, 27.0+28.0j, 29.0+30.0j)
- expected_result = (33.0+36.0j, 39.0+42.0j, 45.0+48.0j, 51.0+54.0j, 57.0+60.0j)
+ src1_data = [1.0+2.0j, 3.0+4.0j, 5.0+6.0j, 7.0+8.0j, 9.0+10.0j]
+ src2_data = [11.0+12.0j, 13.0+14.0j, 15.0+16.0j, 17.0+18.0j, 19.0+20.0j]
+ src3_data = [21.0+22.0j, 23.0+24.0j, 25.0+26.0j, 27.0+28.0j, 29.0+30.0j]
+ expected_result = [33.0+36.0j, 39.0+42.0j, 45.0+48.0j, 51.0+54.0j, 57.0+60.0j]
op = blocks.add_cc(5)
self.help_cc(5, (src1_data, src2_data, src3_data), expected_result, op)
# add_const_vXX
def test_add_const_vss_one(self):
- src_data = (1,)
+ src_data = [1,]
op = blocks.add_const_vss((2,))
- exp_data = (3,)
+ exp_data = [3,]
self.help_const_ss(src_data, exp_data, op)
def test_add_const_vss_five(self):
- src_data = (1, 2, 3, 4, 5)
+ src_data = [1, 2, 3, 4, 5]
op = blocks.add_const_vss((6, 7, 8, 9, 10))
- exp_data = (7, 9, 11, 13, 15)
+ exp_data = [7, 9, 11, 13, 15]
self.help_const_ss(src_data, exp_data, op)
def test_add_const_vii_one(self):
- src_data = (1,)
+ src_data = [1,]
op = blocks.add_const_vii((2,))
- exp_data = (3,)
+ exp_data = [3,]
self.help_const_ii(src_data, exp_data, op)
def test_add_const_vii_five(self):
- src_data = (1, 2, 3, 4, 5)
+ src_data = [1, 2, 3, 4, 5]
op = blocks.add_const_vii((6, 7, 8, 9, 10))
- exp_data = (7, 9, 11, 13, 15)
+ exp_data = [7, 9, 11, 13, 15]
self.help_const_ii(src_data, exp_data, op)
def test_add_const_vff_one(self):
- src_data = (1.0,)
+ src_data = [1.0,]
op = blocks.add_const_vff((2.0,))
- exp_data = (3.0,)
+ exp_data = [3.0,]
self.help_const_ff(src_data, exp_data, op)
def test_add_const_vff_five(self):
- src_data = (1.0, 2.0, 3.0, 4.0, 5.0)
+ src_data = [1.0, 2.0, 3.0, 4.0, 5.0]
op = blocks.add_const_vff((6.0, 7.0, 8.0, 9.0, 10.0))
- exp_data = (7.0, 9.0, 11.0, 13.0, 15.0)
+ exp_data = [7.0, 9.0, 11.0, 13.0, 15.0]
self.help_const_ff(src_data, exp_data, op)
def test_add_const_vcc_one(self):
- src_data = (1.0+2.0j,)
+ src_data = [1.0+2.0j,]
op = blocks.add_const_vcc((2.0+3.0j,))
- exp_data = (3.0+5.0j,)
+ exp_data = [3.0+5.0j,]
self.help_const_cc(src_data, exp_data, op)
def test_add_const_vcc_five(self):
- src_data = (1.0+2.0j, 3.0+4.0j, 5.0+6.0j, 7.0+8.0j, 9.0+10.0j)
+ src_data = [1.0+2.0j, 3.0+4.0j, 5.0+6.0j, 7.0+8.0j, 9.0+10.0j]
op = blocks.add_const_vcc((11.0+12.0j, 13.0+14.0j, 15.0+16.0j, 17.0+18.0j, 19.0+20.0j))
- exp_data = (12.0+14.0j, 16.0+18.0j, 20.0+22.0j, 24.0+26.0j, 28.0+30.0j)
+ exp_data = [12.0+14.0j, 16.0+18.0j, 20.0+22.0j, 24.0+26.0j, 28.0+30.0j]
self.help_const_cc(src_data, exp_data, op)
# multiply_vXX
def test_multiply_vss_one(self):
- src1_data = (1,)
- src2_data = (2,)
- src3_data = (3,)
- expected_result = (6,)
+ src1_data = [1,]
+ src2_data = [2,]
+ src3_data = [3,]
+ expected_result = [6,]
op = blocks.multiply_ss(1)
self.help_ss(1, (src1_data, src2_data, src3_data), expected_result, op)
def test_multiply_vss_five(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (6, 7, 8, 9, 10)
- src3_data = (11, 12, 13, 14, 15)
- expected_result = (66, 168, 312, 504, 750)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [6, 7, 8, 9, 10]
+ src3_data = [11, 12, 13, 14, 15]
+ expected_result = [66, 168, 312, 504, 750]
op = blocks.multiply_ss(5)
self.help_ss(5, (src1_data, src2_data, src3_data), expected_result, op)
def test_multiply_vii_one(self):
- src1_data = (1,)
- src2_data = (2,)
- src3_data = (3,)
- expected_result = (6,)
+ src1_data = [1,]
+ src2_data = [2,]
+ src3_data = [3,]
+ expected_result = [6,]
op = blocks.multiply_ii(1)
self.help_ii(1, (src1_data, src2_data, src3_data), expected_result, op)
def test_multiply_vii_five(self):
- src1_data = (1, 2, 3, 4, 5)
- src2_data = (6, 7, 8, 9, 10)
- src3_data = (11, 12, 13, 14, 15)
- expected_result = (66, 168, 312, 504, 750)
+ src1_data = [1, 2, 3, 4, 5]
+ src2_data = [6, 7, 8, 9, 10]
+ src3_data = [11, 12, 13, 14, 15]
+ expected_result = [66, 168, 312, 504, 750]
op = blocks.multiply_ii(5)
self.help_ii(5, (src1_data, src2_data, src3_data), expected_result, op)
def test_multiply_vff_one(self):
- src1_data = (1.0,)
- src2_data = (2.0,)
- src3_data = (3.0,)
- expected_result = (6.0,)
+ src1_data = [1.0,]
+ src2_data = [2.0,]
+ src3_data = [3.0,]
+ expected_result = [6.0,]
op = blocks.multiply_ff(1)
self.help_ff(1, (src1_data, src2_data, src3_data), expected_result, op)
def test_multiply_vff_five(self):
- src1_data = (1.0, 2.0, 3.0, 4.0, 5.0)
- src2_data = (6.0, 7.0, 8.0, 9.0, 10.0)
- src3_data = (11.0, 12.0, 13.0, 14.0, 15.0)
- expected_result = (66.0, 168.0, 312.0, 504.0, 750.0)
+ src1_data = [1.0, 2.0, 3.0, 4.0, 5.0]
+ src2_data = [6.0, 7.0, 8.0, 9.0, 10.0]
+ src3_data = [11.0, 12.0, 13.0, 14.0, 15.0]
+ expected_result = [66.0, 168.0, 312.0, 504.0, 750.0]
op = blocks.multiply_ff(5)
self.help_ff(5, (src1_data, src2_data, src3_data), expected_result, op)
def test_multiply_vcc_one(self):
- src1_data = (1.0+2.0j,)
- src2_data = (3.0+4.0j,)
- src3_data = (5.0+6.0j,)
- expected_result = (-85+20j,)
+ src1_data = [1.0+2.0j,]
+ src2_data = [3.0+4.0j,]
+ src3_data = [5.0+6.0j,]
+ expected_result = [-85+20j,]
op = blocks.multiply_cc(1)
self.help_cc(1, (src1_data, src2_data, src3_data), expected_result, op)
def test_multiply_vcc_five(self):
- src1_data = (1.0+2.0j, 3.0+4.0j, 5.0+6.0j, 7.0+8.0j, 9.0+10.0j)
- src2_data = (11.0+12.0j, 13.0+14.0j, 15.0+16.0j, 17.0+18.0j, 19.0+20.0j)
- src3_data = (21.0+22.0j, 23.0+24.0j, 25.0+26.0j, 27.0+28.0j, 29.0+30.0j)
- expected_result = (-1021.0+428.0j, -2647.0+1754.0j, -4945.0+3704.0j, -8011.0+6374.0j, -11941.0+9860.0j)
+ src1_data = [1.0+2.0j, 3.0+4.0j, 5.0+6.0j, 7.0+8.0j, 9.0+10.0j]
+ src2_data = [11.0+12.0j, 13.0+14.0j, 15.0+16.0j, 17.0+18.0j, 19.0+20.0j]
+ src3_data = [21.0+22.0j, 23.0+24.0j, 25.0+26.0j, 27.0+28.0j, 29.0+30.0j]
+ expected_result = [-1021.0+428.0j, -2647.0+1754.0j, -4945.0+3704.0j, -8011.0+6374.0j, -11941.0+9860.0j]
op = blocks.multiply_cc(5)
self.help_cc(5, (src1_data, src2_data, src3_data), expected_result, op)
# multiply_const_vXX
def test_multiply_const_vss_one(self):
- src_data = (2,)
+ src_data = [2,]
op = blocks.multiply_const_vss((3,))
- exp_data = (6,)
+ exp_data = [6,]
self.help_const_ss(src_data, exp_data, op)
def test_multiply_const_vss_five(self):
- src_data = (1, 2, 3, 4, 5)
- op = blocks.multiply_const_vss((6, 7, 8, 9, 10))
- exp_data = (6, 14, 24, 36, 50)
+ src_data = [1, 2, 3, 4, 5]
+ op = blocks.multiply_const_vss([6, 7, 8, 9, 10])
+ exp_data = [6, 14, 24, 36, 50]
self.help_const_ss(src_data, exp_data, op)
def test_multiply_const_vii_one(self):
- src_data = (2,)
+ src_data = [2,]
op = blocks.multiply_const_vii((3,))
- exp_data = (6,)
+ exp_data = [6,]
self.help_const_ii(src_data, exp_data, op)
def test_multiply_const_vii_five(self):
- src_data = (1, 2, 3, 4, 5)
+ src_data = [1, 2, 3, 4, 5]
op = blocks.multiply_const_vii((6, 7, 8, 9, 10))
- exp_data = (6, 14, 24, 36, 50)
+ exp_data = [6, 14, 24, 36, 50]
self.help_const_ii(src_data, exp_data, op)
def test_multiply_const_vff_one(self):
- src_data = (2.0,)
+ src_data = [2.0,]
op = blocks.multiply_const_vff((3.0,))
- exp_data = (6.0,)
+ exp_data = [6.0,]
self.help_const_ff(src_data, exp_data, op)
def test_multiply_const_vff_five(self):
- src_data = (1.0, 2.0, 3.0, 4.0, 5.0)
+ src_data = [1.0, 2.0, 3.0, 4.0, 5.0]
op = blocks.multiply_const_vff((6.0, 7.0, 8.0, 9.0, 10.0))
- exp_data = (6.0, 14.0, 24.0, 36.0, 50.0)
+ exp_data = [6.0, 14.0, 24.0, 36.0, 50.0]
self.help_const_ff(src_data, exp_data, op)
def test_multiply_const_vcc_one(self):
- src_data = (1.0+2.0j,)
+ src_data = [1.0+2.0j,]
op = blocks.multiply_const_vcc((2.0+3.0j,))
- exp_data = (-4.0+7.0j,)
+ exp_data = [-4.0+7.0j,]
self.help_const_cc(src_data, exp_data, op)
def test_multiply_const_vcc_five(self):
- src_data = (1.0+2.0j, 3.0+4.0j, 5.0+6.0j, 7.0+8.0j, 9.0+10.0j)
+ src_data = [1.0+2.0j, 3.0+4.0j, 5.0+6.0j, 7.0+8.0j, 9.0+10.0j]
op = blocks.multiply_const_vcc((11.0+12.0j, 13.0+14.0j, 15.0+16.0j, 17.0+18.0j, 19.0+20.0j))
- exp_data = (-13.0+34.0j, -17.0+94.0j, -21.0+170.0j, -25.0+262.0j, -29.0+370.0j)
+ exp_data = [-13.0+34.0j, -17.0+94.0j, -21.0+170.0j, -25.0+262.0j, -29.0+370.0j]
self.help_const_cc(src_data, exp_data, op)
diff --git a/gr-blocks/python/blocks/qa_affinity.py b/gr-blocks/python/blocks/qa_affinity.py
index 7d0f82c0cd..812135957b 100644
--- a/gr-blocks/python/blocks/qa_affinity.py
+++ b/gr-blocks/python/blocks/qa_affinity.py
@@ -32,7 +32,7 @@ class test_affinity(gr_unittest.TestCase):
a = src.processor_affinity()
- self.assertEqual((0,), a)
+ self.assertEqual([0,], a)
if __name__ == '__main__':
gr_unittest.run(test_affinity, "test_affinity.xml")
diff --git a/gr-blocks/python/blocks/qa_argmax.py b/gr-blocks/python/blocks/qa_argmax.py
index bb2e72fb5c..a366c957d6 100644
--- a/gr-blocks/python/blocks/qa_argmax.py
+++ b/gr-blocks/python/blocks/qa_argmax.py
@@ -24,9 +24,9 @@ class test_arg_max(gr_unittest.TestCase):
def test_001(self):
tb = self.tb
- src1_data = (0,0.2,-0.3,0,12,0)
- src2_data = (0,0.0,3.0,0,10,0)
- src3_data = (0,0.0,3.0,0,1,0)
+ src1_data = [0,0.2,-0.3,0,12,0]
+ src2_data = [0,0.0,3.0,0,10,0]
+ src3_data = [0,0.0,3.0,0,1,0]
src1 = blocks.vector_source_f(src1_data)
s2v1 = blocks.stream_to_vector(gr.sizeof_float, len(src1_data))
@@ -54,8 +54,8 @@ class test_arg_max(gr_unittest.TestCase):
tb.run()
index = dst1.data()
source = dst2.data()
- self.assertEqual(index, (4,))
- self.assertEqual(source, (0,))
+ self.assertEqual(index, [4,])
+ self.assertEqual(source, [0,])
if __name__ == '__main__':
gr_unittest.run(test_arg_max, "test_arg_max.xml")
diff --git a/gr-blocks/python/blocks/qa_block_gateway.py b/gr-blocks/python/blocks/qa_block_gateway.py
index efae5410b3..b257e7ddd8 100644
--- a/gr-blocks/python/blocks/qa_block_gateway.py
+++ b/gr-blocks/python/blocks/qa_block_gateway.py
@@ -204,12 +204,13 @@ class test_block_gateway(gr_unittest.TestCase):
src0 = blocks.vector_source_f([1, 3, 5, 7, 9], False)
src1 = blocks.vector_source_f([0, 2, 4, 6, 8], False)
adder = add_2_f32_1_f32()
+ adder.name()
sink = blocks.vector_sink_f()
tb.connect((src0, 0), (adder, 0))
tb.connect((src1, 0), (adder, 1))
tb.connect(adder, sink)
tb.run()
- self.assertEqual(sink.data(), (1, 5, 9, 13, 17))
+ self.assertEqual(sink.data(), [1, 5, 9, 13, 17])
def test_add_fc32(self):
tb = gr.top_block()
@@ -221,7 +222,7 @@ class test_block_gateway(gr_unittest.TestCase):
tb.connect((src1, 0), (adder, 1))
tb.connect(adder, sink)
tb.run()
- self.assertEqual(sink.data(), (1, 5j, 9, 13j, 17))
+ self.assertEqual(sink.data(), [1, 5j, 9, 13j, 17])
def test_convolve(self):
tb = gr.top_block()
@@ -230,7 +231,7 @@ class test_block_gateway(gr_unittest.TestCase):
sink = blocks.vector_sink_f()
tb.connect(src, cv, sink)
tb.run()
- self.assertEqual(sink.data(), (1, 2, 3, 4, 5, 6, 7, 8))
+ self.assertEqual(sink.data(), [1, 2, 3, 4, 5, 6, 7, 8])
def test_decim2x(self):
tb = gr.top_block()
@@ -239,7 +240,7 @@ class test_block_gateway(gr_unittest.TestCase):
sink = blocks.vector_sink_f()
tb.connect(src, d2x, sink)
tb.run()
- self.assertEqual(sink.data(), (1, 3, 5, 7))
+ self.assertEqual(sink.data(), [1, 3, 5, 7])
def test_interp2x(self):
tb = gr.top_block()
@@ -248,7 +249,7 @@ class test_block_gateway(gr_unittest.TestCase):
sink = blocks.vector_sink_f()
tb.connect(src, i2x, sink)
tb.run()
- self.assertEqual(sink.data(), (1, 1, 3, 3, 5, 5, 7, 7, 9, 9))
+ self.assertEqual(sink.data(), [1, 1, 3, 3, 5, 5, 7, 7, 9, 9])
def test_tags(self):
src = tag_source()
@@ -276,7 +277,7 @@ class test_block_gateway(gr_unittest.TestCase):
sink = blocks.vector_sink_f()
tb.connect(src, convert, v2s, sink)
tb.run()
- self.assertEqual(sink.data(), (1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
+ self.assertEqual(sink.data(), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
def test_non_sync_block(self):
tb = gr.top_block ()
diff --git a/gr-blocks/python/blocks/qa_boolean_operators.py b/gr-blocks/python/blocks/qa_boolean_operators.py
index ae98cde5d5..d1d582d3a7 100644
--- a/gr-blocks/python/blocks/qa_boolean_operators.py
+++ b/gr-blocks/python/blocks/qa_boolean_operators.py
@@ -50,59 +50,59 @@ class test_boolean_operators (gr_unittest.TestCase):
self.assertEqual (exp_data, result_data)
def test_xor_ss (self):
- src1_data = (1, 2, 3, 0x5004, 0x1150)
- src2_data = (8, 2, 1 , 0x0508, 0x1105)
- expected_result = (9, 0, 2, 0x550C, 0x0055)
+ src1_data = [1, 2, 3, 0x5004, 0x1150]
+ src2_data = [8, 2, 1 , 0x0508, 0x1105]
+ expected_result = [9, 0, 2, 0x550C, 0x0055]
op = blocks.xor_ss ()
self.help_ss ((src1_data, src2_data),
expected_result, op)
def test_xor_bb (self):
- src1_data = (1, 2, 3, 4, 0x50)
- src2_data = (8, 2, 1 , 8, 0x05)
- expected_result = (9, 0, 2, 0xC, 0x55)
+ src1_data = [1, 2, 3, 4, 0x50]
+ src2_data = [8, 2, 1 , 8, 0x05]
+ expected_result = [9, 0, 2, 0xC, 0x55]
op = blocks.xor_bb ()
self.help_bb ((src1_data, src2_data),
expected_result, op)
def test_xor_ii (self):
- src1_data = (1, 2, 3, 0x5000004, 0x11000050)
- src2_data = (8, 2, 1 , 0x0500008, 0x11000005)
- expected_result = (9, 0, 2, 0x550000C, 0x00000055)
+ src1_data = [1, 2, 3, 0x5000004, 0x11000050]
+ src2_data = [8, 2, 1 , 0x0500008, 0x11000005]
+ expected_result = [9, 0, 2, 0x550000C, 0x00000055]
op = blocks.xor_ii ()
self.help_ii ((src1_data, src2_data),
expected_result, op)
def test_and_ss (self):
- src1_data = (1, 2, 3, 0x5004, 0x1150)
- src2_data = (8, 2, 1 , 0x0508, 0x1105)
- expected_result = (0, 2, 1, 0x0000, 0x1100)
+ src1_data = [1, 2, 3, 0x5004, 0x1150]
+ src2_data = [8, 2, 1 , 0x0508, 0x1105]
+ expected_result = [0, 2, 1, 0x0000, 0x1100]
op = blocks.and_ss ()
self.help_ss ((src1_data, src2_data),
expected_result, op)
def test_and_bb (self):
- src1_data = (1, 2, 2, 3, 0x04, 0x50)
- src2_data = (8, 2, 2, 1, 0x08, 0x05)
- src3_data = (8, 2, 1, 1, 0x08, 0x05)
- expected_result = (0, 2, 0, 1, 0x00, 0x00)
+ src1_data = [1, 2, 2, 3, 0x04, 0x50]
+ src2_data = [8, 2, 2, 1, 0x08, 0x05]
+ src3_data = [8, 2, 1, 1, 0x08, 0x05]
+ expected_result = [0, 2, 0, 1, 0x00, 0x00]
op = blocks.and_bb ()
self.help_bb ((src1_data, src2_data, src3_data),
expected_result, op)
def test_and_ii (self):
- src1_data = (1, 2, 3, 0x50005004, 0x11001150)
- src2_data = (8, 2, 1 , 0x05000508, 0x11001105)
- expected_result = (0, 2, 1, 0x00000000, 0x11001100)
+ src1_data = [1, 2, 3, 0x50005004, 0x11001150]
+ src2_data = [8, 2, 1 , 0x05000508, 0x11001105]
+ expected_result = [0, 2, 1, 0x00000000, 0x11001100]
op = blocks.and_ii ()
self.help_ii ((src1_data, src2_data),
expected_result, op)
def test_and_const_ss (self):
- src_data = (1, 2, 3, 0x5004, 0x1150)
- expected_result = (0, 2, 2, 0x5000, 0x1100)
+ src_data = [1, 2, 3, 0x5004, 0x1150]
+ expected_result = [0, 2, 2, 0x5000, 0x1100]
src = blocks.vector_source_s(src_data)
op = blocks.and_const_ss (0x55AA)
dst = blocks.vector_sink_s()
@@ -111,8 +111,8 @@ class test_boolean_operators (gr_unittest.TestCase):
self.assertEqual(dst.data(), expected_result)
def test_and_const_bb (self):
- src_data = (1, 2, 3, 0x50, 0x11)
- expected_result = (0, 2, 2, 0x00, 0x00)
+ src_data = [1, 2, 3, 0x50, 0x11]
+ expected_result = [0, 2, 2, 0x00, 0x00]
src = blocks.vector_source_b(src_data)
op = blocks.and_const_bb (0xAA)
dst = blocks.vector_sink_b()
@@ -122,8 +122,8 @@ class test_boolean_operators (gr_unittest.TestCase):
def test_and_const_ii (self):
- src_data = (1, 2, 3, 0x5004, 0x1150)
- expected_result = (0, 2, 2, 0x5000, 0x1100)
+ src_data = [1, 2, 3, 0x5004, 0x1150]
+ expected_result = [0, 2, 2, 0x5000, 0x1100]
src = blocks.vector_source_i(src_data)
op = blocks.and_const_ii (0x55AA)
dst = blocks.vector_sink_i()
@@ -133,47 +133,47 @@ class test_boolean_operators (gr_unittest.TestCase):
def test_or_ss (self):
- src1_data = (1, 2, 3, 0x5004, 0x1150)
- src2_data = (8, 2, 1 , 0x0508, 0x1105)
- expected_result = (9, 2, 3, 0x550C, 0x1155)
+ src1_data = [1, 2, 3, 0x5004, 0x1150]
+ src2_data = [8, 2, 1 , 0x0508, 0x1105]
+ expected_result = [9, 2, 3, 0x550C, 0x1155]
op = blocks.or_ss ()
self.help_ss ((src1_data, src2_data),
expected_result, op)
def test_or_bb (self):
- src1_data = (1, 2, 2, 3, 0x04, 0x50)
- src2_data = (8, 2, 2, 1 , 0x08, 0x05)
- src3_data = (8, 2, 1, 1 , 0x08, 0x05)
- expected_result = (9, 2, 3, 3, 0x0C, 0x55)
+ src1_data = [1, 2, 2, 3, 0x04, 0x50]
+ src2_data = [8, 2, 2, 1 , 0x08, 0x05]
+ src3_data = [8, 2, 1, 1 , 0x08, 0x05]
+ expected_result = [9, 2, 3, 3, 0x0C, 0x55]
op = blocks.or_bb ()
self.help_bb ((src1_data, src2_data, src3_data),
expected_result, op)
def test_or_ii (self):
- src1_data = (1, 2, 3, 0x50005004, 0x11001150)
- src2_data = (8, 2, 1 , 0x05000508, 0x11001105)
- expected_result = (9, 2, 3, 0x5500550C, 0x11001155)
+ src1_data = [1, 2, 3, 0x50005004, 0x11001150]
+ src2_data = [8, 2, 1 , 0x05000508, 0x11001105]
+ expected_result = [9, 2, 3, 0x5500550C, 0x11001155]
op = blocks.or_ii ()
self.help_ii ((src1_data, src2_data),
expected_result, op)
def test_not_ss (self):
- src1_data = (1, 2, 3, 0x5004, 0x1150)
- expected_result = (~1, ~2, ~3, ~0x5004, ~0x1150)
+ src1_data = [1, 2, 3, 0x5004, 0x1150]
+ expected_result = [~1, ~2, ~3, ~0x5004, ~0x1150]
op = blocks.not_ss ()
self.help_ss ((((src1_data),)),
expected_result, op)
def test_not_bb (self):
- src1_data = (1, 2, 2, 3, 0x04, 0x50)
- expected_result = (0xFE, 0xFD, 0xFD, 0xFC, 0xFB, 0xAF)
+ src1_data = [1, 2, 2, 3, 0x04, 0x50]
+ expected_result = [0xFE, 0xFD, 0xFD, 0xFC, 0xFB, 0xAF]
op = blocks.not_bb ()
self.help_bb (((src1_data), ),
expected_result, op)
def test_not_ii (self):
- src1_data = (1, 2, 3, 0x50005004, 0x11001150)
- expected_result = (~1 , ~2, ~3, ~0x50005004, ~0x11001150)
+ src1_data = [1, 2, 3, 0x50005004, 0x11001150]
+ expected_result = [~1 , ~2, ~3, ~0x50005004, ~0x11001150]
op = blocks.not_ii ()
self.help_ii (((src1_data),),
expected_result, op)
diff --git a/gr-blocks/python/blocks/qa_conjugate.py b/gr-blocks/python/blocks/qa_conjugate.py
index 904626948d..09eb8fa7d9 100644
--- a/gr-blocks/python/blocks/qa_conjugate.py
+++ b/gr-blocks/python/blocks/qa_conjugate.py
@@ -20,13 +20,13 @@ class test_conjugate (gr_unittest.TestCase):
self.tb = None
def test_000 (self):
- src_data = (-2-2j, -1-1j, -2+2j, -1+1j,
+ src_data = [-2-2j, -1-1j, -2+2j, -1+1j,
2-2j, 1-1j, 2+2j, 1+1j,
- 0+0j)
+ 0+0j]
- exp_data = (-2+2j, -1+1j, -2-2j, -1-1j,
+ exp_data = [-2+2j, -1+1j, -2-2j, -1-1j,
2+2j, 1+1j, 2-2j, 1-1j,
- 0-0j)
+ 0-0j]
src = blocks.vector_source_c(src_data)
op = blocks.conjugate_cc ()
diff --git a/gr-blocks/python/blocks/qa_copy.py b/gr-blocks/python/blocks/qa_copy.py
index 3fd8d4509a..9abc2936e0 100644
--- a/gr-blocks/python/blocks/qa_copy.py
+++ b/gr-blocks/python/blocks/qa_copy.py
@@ -20,8 +20,8 @@ class test_copy(gr_unittest.TestCase):
self.tb = None
def test_copy(self):
- src_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
- expected_result = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
+ src_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+ expected_result = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
src = blocks.vector_source_b(src_data)
op = blocks.copy(gr.sizeof_char)
dst = blocks.vector_sink_b()
@@ -31,8 +31,8 @@ class test_copy(gr_unittest.TestCase):
self.assertEqual(expected_result, dst_data)
def test_copy_drop (self):
- src_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
- expected_result = ()
+ src_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+ expected_result = []
src = blocks.vector_source_b(src_data)
op = blocks.copy(gr.sizeof_char)
op.set_enabled(False)
diff --git a/gr-blocks/python/blocks/qa_delay.py b/gr-blocks/python/blocks/qa_delay.py
index 9e5d103b0f..dffd173e54 100644
--- a/gr-blocks/python/blocks/qa_delay.py
+++ b/gr-blocks/python/blocks/qa_delay.py
@@ -24,7 +24,7 @@ class test_delay(gr_unittest.TestCase):
delta_t = 0
tb = self.tb
src_data = [float(x) for x in range(0, 100)]
- expected_result = tuple(delta_t*[0.0] + src_data)
+ expected_result = list(delta_t*[0.0] + src_data)
src = blocks.vector_source_f(src_data)
op = blocks.delay(gr.sizeof_float, delta_t)
@@ -39,7 +39,7 @@ class test_delay(gr_unittest.TestCase):
delta_t = 10
tb = self.tb
src_data = [float(x) for x in range(0, 100)]
- expected_result = tuple(delta_t*[0.0] + src_data)
+ expected_result = list(delta_t*[0.0] + src_data)
src = blocks.vector_source_f(src_data)
op = blocks.delay(gr.sizeof_float, delta_t)
diff --git a/gr-blocks/python/blocks/qa_exponentiate_const_cci.py b/gr-blocks/python/blocks/qa_exponentiate_const_cci.py
index 30b9d5ad94..aaa04db7b4 100644
--- a/gr-blocks/python/blocks/qa_exponentiate_const_cci.py
+++ b/gr-blocks/python/blocks/qa_exponentiate_const_cci.py
@@ -23,8 +23,8 @@ class qa_exponentiate_const_cci(gr_unittest.TestCase):
def test_001_t(self):
for exponent in range(1,10):
- in_data = (1+1j, -1, 4-1j, -3-7j)
- out_data = (in_data[0]**exponent, in_data[1]**exponent, in_data[2]**exponent, in_data[3]**exponent)
+ in_data = [1+1j, -1, 4-1j, -3-7j]
+ out_data = [in_data[0]**exponent, in_data[1]**exponent, in_data[2]**exponent, in_data[3]**exponent]
# Test streaming input
source = blocks.vector_source_c(in_data, False, 1)
diff --git a/gr-blocks/python/blocks/qa_head.py b/gr-blocks/python/blocks/qa_head.py
index 0766d002d3..75ad8221c5 100644
--- a/gr-blocks/python/blocks/qa_head.py
+++ b/gr-blocks/python/blocks/qa_head.py
@@ -20,8 +20,8 @@ class test_head(gr_unittest.TestCase):
self.tb = None
def test_head(self):
- src_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
- expected_result = (1, 2, 3, 4)
+ src_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+ expected_result = [1, 2, 3, 4]
src1 = blocks.vector_source_i(src_data)
op = blocks.head(gr.sizeof_int, 4)
dst1 = blocks.vector_sink_i()
diff --git a/gr-blocks/python/blocks/qa_hier_block2.py b/gr-blocks/python/blocks/qa_hier_block2.py
index e36838afee..e2ba8f47b2 100644
--- a/gr-blocks/python/blocks/qa_hier_block2.py
+++ b/gr-blocks/python/blocks/qa_hier_block2.py
@@ -74,7 +74,7 @@ class test_hier_block2(gr_unittest.TestCase):
nop1 = blocks.nop(gr.sizeof_int)
nop2 = blocks.nop(gr.sizeof_int)
hblock.connect(nop1, hblock)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.connect(nop2, hblock))
def test_006_connect_invalid_src_port_neg(self):
@@ -82,7 +82,7 @@ class test_hier_block2(gr_unittest.TestCase):
gr.io_signature(1,1,gr.sizeof_int),
gr.io_signature(1,1,gr.sizeof_int))
nop1 = blocks.nop(gr.sizeof_int)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.connect((hblock, -1), nop1))
def test_005_connect_invalid_src_port_exceeds(self):
@@ -90,7 +90,7 @@ class test_hier_block2(gr_unittest.TestCase):
gr.io_signature(1,1,gr.sizeof_int),
gr.io_signature(1,1,gr.sizeof_int))
nop1 = blocks.nop(gr.sizeof_int)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.connect((hblock, 1), nop1))
def test_007_connect_invalid_dst_port_neg(self):
@@ -99,7 +99,7 @@ class test_hier_block2(gr_unittest.TestCase):
gr.io_signature(1,1,gr.sizeof_int))
nop1 = blocks.nop(gr.sizeof_int)
nop2 = blocks.nop(gr.sizeof_int)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.connect(nop1, (nop2, -1)))
def test_008_connect_invalid_dst_port_exceeds(self):
@@ -108,7 +108,7 @@ class test_hier_block2(gr_unittest.TestCase):
gr.io_signature(1,1,gr.sizeof_int))
nop1 = blocks.null_sink(gr.sizeof_int)
nop2 = blocks.null_sink(gr.sizeof_int)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.connect(nop1, (nop2, 1)))
def test_009_check_topology(self):
@@ -116,7 +116,7 @@ class test_hier_block2(gr_unittest.TestCase):
hblock.check_topology(0, 0)
def test_010_run(self):
- expected = (1.0, 2.0, 3.0, 4.0)
+ expected = [1.0, 2.0, 3.0, 4.0]
hblock = gr.top_block("test_block")
src = blocks.vector_source_f(expected, False)
sink1 = blocks.vector_sink_f()
@@ -144,7 +144,7 @@ class test_hier_block2(gr_unittest.TestCase):
nop1 = blocks.nop(gr.sizeof_int)
nop2 = blocks.nop(gr.sizeof_int)
hblock.connect(hblock, nop1)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.disconnect(hblock, nop2))
def test_014_disconnect_input_neg(self):
@@ -153,7 +153,7 @@ class test_hier_block2(gr_unittest.TestCase):
gr.io_signature(1,1,gr.sizeof_int))
nop1 = blocks.nop(gr.sizeof_int)
hblock.connect(hblock, nop1)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.disconnect((hblock, -1), nop1))
def test_015_disconnect_input_exceeds(self):
@@ -162,7 +162,7 @@ class test_hier_block2(gr_unittest.TestCase):
gr.io_signature(1,1,gr.sizeof_int))
nop1 = blocks.nop(gr.sizeof_int)
hblock.connect(hblock, nop1)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.disconnect((hblock, 1), nop1))
def test_016_disconnect_output(self):
@@ -180,7 +180,7 @@ class test_hier_block2(gr_unittest.TestCase):
nop1 = blocks.nop(gr.sizeof_int)
nop2 = blocks.nop(gr.sizeof_int)
hblock.connect(nop1, hblock)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.disconnect(nop2, hblock))
def test_018_disconnect_output_neg(self):
@@ -189,7 +189,7 @@ class test_hier_block2(gr_unittest.TestCase):
gr.io_signature(1,1,gr.sizeof_int))
nop1 = blocks.nop(gr.sizeof_int)
hblock.connect(hblock, nop1)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.disconnect(nop1, (hblock, -1)))
def test_019_disconnect_output_exceeds(self):
@@ -198,12 +198,12 @@ class test_hier_block2(gr_unittest.TestCase):
gr.io_signature(1,1,gr.sizeof_int))
nop1 = blocks.nop(gr.sizeof_int)
hblock.connect(nop1, hblock)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.disconnect(nop1, (hblock, 1)))
def test_020_run(self):
hblock = gr.top_block("test_block")
- data = (1.0, 2.0, 3.0, 4.0)
+ data = [1.0, 2.0, 3.0, 4.0]
src = blocks.vector_source_f(data, False)
dst = blocks.vector_sink_f()
hblock.connect(src, dst)
@@ -222,7 +222,7 @@ class test_hier_block2(gr_unittest.TestCase):
blk = gr.hier_block2("block",
gr.io_signature(1, 1, 1),
gr.io_signature(1, 1, 1))
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.connect(blk))
def test_023_connect_single_twice(self):
@@ -231,7 +231,7 @@ class test_hier_block2(gr_unittest.TestCase):
gr.io_signature(0, 0, 0),
gr.io_signature(0, 0, 0))
hblock.connect(blk)
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.connect(blk))
def test_024_disconnect_single(self):
@@ -247,11 +247,11 @@ class test_hier_block2(gr_unittest.TestCase):
blk = gr.hier_block2("block",
gr.io_signature(0, 0, 0),
gr.io_signature(0, 0, 0))
- self.assertRaises(TypeError,
+ self.assertRaises(ValueError,
lambda: hblock.disconnect(blk))
def test_026_run_single(self):
- expected_data = (1.0,)
+ expected_data = [1.0,]
tb = gr.top_block("top_block")
hb = gr.hier_block2("block",
gr.io_signature(0, 0, 0),
@@ -336,7 +336,7 @@ class test_hier_block2(gr_unittest.TestCase):
tb.disconnect(src) # Singleton disconnect
tb.connect(src, dst)
tb.run()
- self.assertEqual(dst.data(), (1,))
+ self.assertEqual(dst.data(), [1,])
def test_030_nested_input(self):
tb = gr.top_block()
@@ -352,7 +352,7 @@ class test_hier_block2(gr_unittest.TestCase):
hb1.connect(hb1, hb2)
hb2.connect(hb2, blocks.copy(gr.sizeof_char), dst)
tb.run()
- self.assertEqual(dst.data(), (1,))
+ self.assertEqual(dst.data(), [1,])
def test_031_multiple_internal_inputs(self):
tb = gr.top_block()
@@ -371,7 +371,7 @@ class test_hier_block2(gr_unittest.TestCase):
dst = blocks.vector_sink_f()
tb.connect(src, hb, dst)
tb.run()
- self.assertEqual(dst.data(), (3.0,))
+ self.assertEqual(dst.data(), [3.0,])
def test_032_nested_multiple_internal_inputs(self):
tb = gr.top_block()
@@ -395,11 +395,11 @@ class test_hier_block2(gr_unittest.TestCase):
dst = blocks.vector_sink_f()
tb.connect(src, hb, dst)
tb.run()
- self.assertEqual(dst.data(), (3.0,))
+ self.assertEqual(dst.data(), [3.0,])
def test_033a_set_affinity(self):
- expected = (1.0, 2.0, 3.0, 4.0)
+ expected = [1.0, 2.0, 3.0, 4.0]
hblock = gr.top_block("test_block")
src = blocks.vector_source_f(expected, False)
snk = blocks.vector_sink_f()
@@ -410,7 +410,7 @@ class test_hier_block2(gr_unittest.TestCase):
self.assertEqual(expected, actual)
def test_033b_unset_affinity(self):
- expected = (1.0, 2.0, 3.0, 4.0)
+ expected = [1.0, 2.0, 3.0, 4.0]
hblock = gr.top_block("test_block")
src = blocks.vector_source_f(expected, False)
snk = blocks.vector_sink_f()
@@ -422,14 +422,14 @@ class test_hier_block2(gr_unittest.TestCase):
self.assertEqual(expected, actual)
def test_033c_get_affinity(self):
- expected = (1.0, 2.0, 3.0, 4.0)
+ expected = [1.0, 2.0, 3.0, 4.0]
hblock = gr.top_block("test_block")
src = blocks.vector_source_f(expected, False)
snk = blocks.vector_sink_f()
hblock.connect(src, snk)
hblock.set_processor_affinity([0,])
procs = hblock.processor_affinity()
- self.assertEqual((0,), procs)
+ self.assertEqual([0,], procs)
def test_34a_lock_unlock(self):
hblock = gr.top_block("test_block")
diff --git a/gr-blocks/python/blocks/qa_integrate.py b/gr-blocks/python/blocks/qa_integrate.py
index 3a14309827..14a7838e9b 100644
--- a/gr-blocks/python/blocks/qa_integrate.py
+++ b/gr-blocks/python/blocks/qa_integrate.py
@@ -20,8 +20,8 @@ class test_integrate (gr_unittest.TestCase):
self.tb = None
def test_000_ss(self):
- src_data = (1, 2, 3, 4, 5, 6)
- dst_data = (6, 15)
+ src_data = [1, 2, 3, 4, 5, 6]
+ dst_data = [6, 15]
src = blocks.vector_source_s(src_data)
itg = blocks.integrate_ss(3)
dst = blocks.vector_sink_s()
@@ -30,8 +30,8 @@ class test_integrate (gr_unittest.TestCase):
self.assertEqual(dst_data, dst.data())
def test_001_ii(self):
- src_data = (1, 2, 3, 4, 5, 6)
- dst_data = (6, 15)
+ src_data = [1, 2, 3, 4, 5, 6]
+ dst_data = [6, 15]
src = blocks.vector_source_i(src_data)
itg = blocks.integrate_ii(3)
dst = blocks.vector_sink_i()
@@ -60,8 +60,8 @@ class test_integrate (gr_unittest.TestCase):
self.assertComplexTuplesAlmostEqual(dst_data, dst.data(), 6)
def test_004_ss_vec(self):
- src_data = (1, 2, 3, 4, 5, 6)
- dst_data = (9, 12)
+ src_data = [1, 2, 3, 4, 5, 6]
+ dst_data = [9, 12]
vlen = 2
src = blocks.vector_source_s(src_data, False, vlen)
itg = blocks.integrate_ss(3, vlen)
diff --git a/gr-blocks/python/blocks/qa_keep_one_in_n.py b/gr-blocks/python/blocks/qa_keep_one_in_n.py
index 6a4c45c0f0..dd9023996b 100644
--- a/gr-blocks/python/blocks/qa_keep_one_in_n.py
+++ b/gr-blocks/python/blocks/qa_keep_one_in_n.py
@@ -20,9 +20,9 @@ class test_keep_one_in_n(gr_unittest.TestCase):
self.tb = None
def test_001(self):
- src_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
- expected_data = (5, 10)
- src = blocks.vector_source_b(src_data);
+ src_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+ expected_data = [5, 10]
+ src = blocks.vector_source_b(src_data)
op = blocks.keep_one_in_n(gr.sizeof_char, 5)
dst = blocks.vector_sink_b()
self.tb.connect(src, op, dst)
diff --git a/gr-blocks/python/blocks/qa_max.py b/gr-blocks/python/blocks/qa_max.py
index 8370ed2ecc..833de3b6f0 100644
--- a/gr-blocks/python/blocks/qa_max.py
+++ b/gr-blocks/python/blocks/qa_max.py
@@ -23,8 +23,8 @@ class test_max(gr_unittest.TestCase):
self.tb = None
def test_001(self):
- src_data = (0,0.2,-0.3,0,12,0)
- expected_result = (float(max(src_data)),)
+ src_data = [0,0.2,-0.3,0,12,0]
+ expected_result = [float(max(src_data)),]
src = blocks.vector_source_f(src_data)
s2v = blocks.stream_to_vector(gr.sizeof_float, len(src_data))
@@ -37,8 +37,8 @@ class test_max(gr_unittest.TestCase):
self.assertEqual(expected_result, result_data)
def stest_002(self):
- src_data=(-100,-99,-98,-97,-96,-1)
- expected_result = (float(max(src_data)),)
+ src_data=[-100,-99,-98,-97,-96,-1]
+ expected_result = [float(max(src_data)),]
src = blocks.vector_source_f(src_data)
s2v = blocks.stream_to_vector(gr.sizeof_float, len(src_data))
@@ -51,8 +51,8 @@ class test_max(gr_unittest.TestCase):
self.assertEqual(expected_result, result_data)
def stest_003(self):
- src_data0 = (0, 2, -3, 0, 12, 0)
- src_data1 = (1, 1, 1, 1, 1, 1)
+ src_data0 = [0, 2, -3, 0, 12, 0]
+ src_data1 = [1, 1, 1, 1, 1, 1]
expected_result = [float(max(x,y)) for x,y in zip(src_data0, src_data1)]
@@ -70,8 +70,8 @@ class test_max(gr_unittest.TestCase):
def stest_004(self):
dim = 2
- src_data0 = (0, 2, -3, 0, 12, 0)
- src_data1 = (1, 1, 1, 1, 1, 1)
+ src_data0 = [0, 2, -3, 0, 12, 0]
+ src_data1 = [1, 1, 1, 1, 1, 1]
expected_data = []
tmp = [float(max(x,y)) for x,y in zip(src_data0, src_data1)]
@@ -94,8 +94,8 @@ class test_max(gr_unittest.TestCase):
def stest_s001(self):
- src_data = (0, 2, -3, 0, 12, 0)
- expected_result = (max(src_data),)
+ src_data = [0, 2, -3, 0, 12, 0]
+ expected_result = [max(src_data),]
src = blocks.vector_source_s(src_data)
s2v = blocks.stream_to_vector(gr.sizeof_short,len(src_data))
@@ -108,8 +108,8 @@ class test_max(gr_unittest.TestCase):
self.assertEqual(expected_result, result_data)
def stest_s002(self):
- src_data=(-100,-99,-98,-97,-96,-1)
- expected_result = (max(src_data),)
+ src_data=[-100,-99,-98,-97,-96,-1]
+ expected_result = [max(src_data),]
src = blocks.vector_source_s(src_data)
s2v = blocks.stream_to_vector(gr.sizeof_short, len(src_data))
@@ -123,8 +123,8 @@ class test_max(gr_unittest.TestCase):
def stest_s003(self):
- src_data0 = (0, 2, -3, 0, 12, 0)
- src_data1 = (1, 1, 1, 1, 1, 1)
+ src_data0 = [0, 2, -3, 0, 12, 0]
+ src_data1 = [1, 1, 1, 1, 1, 1]
expected_result = [max(x,y) for x,y in zip(src_data0, src_data1)]
@@ -142,8 +142,8 @@ class test_max(gr_unittest.TestCase):
def stest_s004(self):
dim = 2
- src_data0 = (0, 2, -3, 0, 12, 0)
- src_data1 = (1, 1, 1, 1, 1, 1)
+ src_data0 = [0, 2, -3, 0, 12, 0]
+ src_data1 = [1, 1, 1, 1, 1, 1]
expected_data = []
tmp = [max(x,y) for x,y in zip(src_data0, src_data1)]
diff --git a/gr-blocks/python/blocks/qa_message.py b/gr-blocks/python/blocks/qa_message.py
index ebb094cf8d..c23e2c7f59 100644
--- a/gr-blocks/python/blocks/qa_message.py
+++ b/gr-blocks/python/blocks/qa_message.py
@@ -15,29 +15,29 @@ from gnuradio import gr, gr_unittest, blocks
import pmt
-def all_counts():
- return (gr.block_ncurrently_allocated(),
- gr.block_detail_ncurrently_allocated(),
- gr.buffer_ncurrently_allocated(),
- gr.buffer_reader_ncurrently_allocated(),
- gr.message_ncurrently_allocated())
+# def all_counts():
+# return (gr.block_ncurrently_allocated(),
+# gr.block_detail_ncurrently_allocated(),
+# gr.buffer_ncurrently_allocated(),
+# gr.buffer_reader_ncurrently_allocated(),
+# gr.message_ncurrently_allocated())
class test_message(gr_unittest.TestCase):
- def setUp(self):
- self.msgq = gr.msg_queue()
+ # def setUp(self):
+ # # self.msgq = gr.msg_queue()
- def tearDown(self):
- self.msgq = None
+ # def tearDown(self):
+ # # self.msgq = None
- def leak_check(self, fct):
- begin = all_counts()
- fct()
- # tear down early so we can check for leaks
- self.tearDown()
- end = all_counts()
- self.assertEqual(begin, end)
+ # def leak_check(self, fct):
+ # begin = all_counts()
+ # fct()
+ # # tear down early so we can check for leaks
+ # self.tearDown()
+ # end = all_counts()
+ # self.assertEqual(begin, end)
def test_100(self):
msg = gr.message(0, 1.5, 2.3)
@@ -56,38 +56,39 @@ class test_message(gr_unittest.TestCase):
msg = gr.message_from_string(s)
self.assertEquals(s.encode('utf8'), msg.to_string())
- def test_200(self):
- self.leak_check(self.body_200)
-
- def body_200(self):
- self.msgq.insert_tail(gr.message(0))
- self.assertEquals(1, self.msgq.count())
- self.msgq.insert_tail(gr.message(1))
- self.assertEquals(2, self.msgq.count())
- msg0 = self.msgq.delete_head()
- self.assertEquals(0, msg0.type())
- msg1 = self.msgq.delete_head()
- self.assertEquals(1, msg1.type())
- self.assertEquals(0, self.msgq.count())
-
- def test_201(self):
- self.leak_check(self.body_201)
-
- def body_201(self):
- self.msgq.insert_tail(gr.message(0))
- self.assertEquals(1, self.msgq.count())
- self.msgq.insert_tail(gr.message(1))
- self.assertEquals(2, self.msgq.count())
-
- def test_202(self):
- self.leak_check(self.body_202)
+ ## msg_queue was removed from API in 3.8
+ # def test_200(self):
+ # self.leak_check(self.body_200)
+
+ # def body_200(self):
+ # self.msgq.insert_tail(gr.message(0))
+ # self.assertEquals(1, self.msgq.count())
+ # self.msgq.insert_tail(gr.message(1))
+ # self.assertEquals(2, self.msgq.count())
+ # msg0 = self.msgq.delete_head()
+ # self.assertEquals(0, msg0.type())
+ # msg1 = self.msgq.delete_head()
+ # self.assertEquals(1, msg1.type())
+ # self.assertEquals(0, self.msgq.count())
+
+ # def test_201(self):
+ # self.leak_check(self.body_201)
+
+ # def body_201(self):
+ # self.msgq.insert_tail(gr.message(0))
+ # self.assertEquals(1, self.msgq.count())
+ # self.msgq.insert_tail(gr.message(1))
+ # self.assertEquals(2, self.msgq.count())
+
+ # def test_202(self):
+ # self.leak_check(self.body_202)
def body_202(self):
# global msg
msg = gr.message(666)
def test_300(self):
- input_data = (0,1,2,3,4,5,6,7,8,9)
+ input_data = [0,1,2,3,4,5,6,7,8,9]
src = blocks.vector_source_b(input_data)
dst = blocks.vector_sink_b()
tb = gr.top_block()
diff --git a/gr-blocks/python/blocks/qa_min.py b/gr-blocks/python/blocks/qa_min.py
index 7a91e1b7f1..cf3581c3bb 100644
--- a/gr-blocks/python/blocks/qa_min.py
+++ b/gr-blocks/python/blocks/qa_min.py
@@ -23,8 +23,8 @@ class test_min(gr_unittest.TestCase):
self.tb = None
def test_001(self):
- src_data = (0, 0.2, -0.25, 0, 12, 0)
- expected_result = (float(min(src_data)),)
+ src_data = [0, 0.2, -0.25, 0, 12, 0]
+ expected_result = [float(min(src_data)),]
src = blocks.vector_source_f(src_data)
s2v = blocks.stream_to_vector(gr.sizeof_float, len(src_data))
@@ -37,8 +37,8 @@ class test_min(gr_unittest.TestCase):
self.assertEqual(expected_result, result_data)
def stest_002(self):
- src_data=(-100,-99,-98,-97,-96,-1)
- expected_result = (float(min(src_data)),)
+ src_data=[-100,-99,-98,-97,-96,-1]
+ expected_result = [float(min(src_data)),]
src = blocks.vector_source_f(src_data)
s2v = blocks.stream_to_vector(gr.sizeof_float, len(src_data))
@@ -51,8 +51,8 @@ class test_min(gr_unittest.TestCase):
self.assertEqual(expected_result, result_data)
def stest_003(self):
- src_data0 = (0, 2, -3, 0, 12, 0)
- src_data1 = (1, 1, 1, 1, 1, 1)
+ src_data0 = [0, 2, -3, 0, 12, 0]
+ src_data1 = [1, 1, 1, 1, 1, 1]
expected_result = [float(min(x,y)) for x,y in zip(src_data0, src_data1)]
@@ -70,8 +70,8 @@ class test_min(gr_unittest.TestCase):
def stest_004(self):
dim = 2
- src_data0 = (0, 2, -3, 0, 12, 0)
- src_data1 = (1, 1, 1, 1, 1, 1)
+ src_data0 = [0, 2, -3, 0, 12, 0]
+ src_data1 = [1, 1, 1, 1, 1, 1]
expected_data = []
tmp = [float(min(x,y)) for x,y in zip(src_data0, src_data1)]
@@ -94,8 +94,8 @@ class test_min(gr_unittest.TestCase):
def stest_s001(self):
- src_data = (0, 2, -3, 0, 12, 0)
- expected_result = (min(src_data),)
+ src_data = [0, 2, -3, 0, 12, 0]
+ expected_result = [min(src_data),]
src = blocks.vector_source_s(src_data)
s2v = blocks.stream_to_vector(gr.sizeof_short,len(src_data))
@@ -108,8 +108,8 @@ class test_min(gr_unittest.TestCase):
self.assertEqual(expected_result, result_data)
def stest_s002(self):
- src_data=(-100,-99,-98,-97,-96,-1)
- expected_result = (min(src_data),)
+ src_data=[-100,-99,-98,-97,-96,-1]
+ expected_result = [min(src_data),]
src = blocks.vector_source_s(src_data)
s2v = blocks.stream_to_vector(gr.sizeof_short, len(src_data))
@@ -123,8 +123,8 @@ class test_min(gr_unittest.TestCase):
def stest_s003(self):
- src_data0 = (0, 2, -3, 0, 12, 0)
- src_data1 = (1, 1, 1, 1, 1, 1)
+ src_data0 = [0, 2, -3, 0, 12, 0]
+ src_data1 = [1, 1, 1, 1, 1, 1]
expected_result = [min(x,y) for x,y in zip(src_data0, src_data1)]
@@ -142,8 +142,8 @@ class test_min(gr_unittest.TestCase):
def stest_s004(self):
dim = 2
- src_data0 = (0, 2, -3, 0, 12, 0)
- src_data1 = (1, 1, 1, 1, 1, 1)
+ src_data0 = [0, 2, -3, 0, 12, 0]
+ src_data1 = [1, 1, 1, 1, 1, 1]
expected_data = []
tmp = [min(x,y) for x,y in zip(src_data0, src_data1)]
diff --git a/gr-blocks/python/blocks/qa_moving_average.py b/gr-blocks/python/blocks/qa_moving_average.py
index 7f9aa57770..f284c3d7cf 100644
--- a/gr-blocks/python/blocks/qa_moving_average.py
+++ b/gr-blocks/python/blocks/qa_moving_average.py
@@ -27,7 +27,11 @@ def make_random_float_tuple(L, scale=1):
return tuple(result)
class test_moving_average(gr_unittest.TestCase):
-
+ def assertListAlmostEqual(self, list1, list2, tol):
+ self.assertEqual(len(list1), len(list2))
+ for a, b in zip(list1, list2):
+ self.assertAlmostEqual(a, b, tol)
+
def setUp(self):
random.seed(0)
self.tb = gr.top_block()
@@ -109,7 +113,7 @@ class test_moving_average(gr_unittest.TestCase):
ref_data = ref_dst.data()
# make sure result is close to zero
- self.assertTupleEqual(dut_data, ref_data)
+ self.assertEqual(dut_data, ref_data)
def test_04(self):
tb = self.tb
@@ -138,7 +142,7 @@ class test_moving_average(gr_unittest.TestCase):
dst_data = dst.data()
# make sure result is close to zero
- self.assertComplexTuplesAlmostEqual(expected_result, dst_data, 4)
+ self.assertListAlmostEqual(expected_result, dst_data, 4)
if __name__ == '__main__':
gr_unittest.run(test_moving_average, "test_moving_average.xml")
diff --git a/gr-blocks/python/blocks/qa_multiply_conjugate.py b/gr-blocks/python/blocks/qa_multiply_conjugate.py
index f1af28f78a..ed76cf7b47 100644
--- a/gr-blocks/python/blocks/qa_multiply_conjugate.py
+++ b/gr-blocks/python/blocks/qa_multiply_conjugate.py
@@ -20,16 +20,16 @@ class test_multiply_conjugate (gr_unittest.TestCase):
self.tb = None
def test_000 (self):
- src_data0 = (-2-2j, -1-1j, -2+2j, -1+1j,
+ src_data0 = [-2-2j, -1-1j, -2+2j, -1+1j,
2-2j, 1-1j, 2+2j, 1+1j,
- 0+0j)
- src_data1 = (-3-3j, -4-4j, -3+3j, -4+4j,
+ 0+0j]
+ src_data1 = [-3-3j, -4-4j, -3+3j, -4+4j,
3-3j, 4-4j, 3+3j, 4+4j,
- 0+0j)
+ 0+0j]
- exp_data = (12+0j, 8+0j, 12+0j, 8+0j,
+ exp_data = [12+0j, 8+0j, 12+0j, 8+0j,
12+0j, 8+0j, 12+0j, 8+0j,
- 0+0j)
+ 0+0j]
src0 = blocks.vector_source_c(src_data0)
src1 = blocks.vector_source_c(src_data1)
op = blocks.multiply_conjugate_cc ()
diff --git a/gr-blocks/python/blocks/qa_mute.py b/gr-blocks/python/blocks/qa_mute.py
index 3264a38a80..fd72abfe24 100644
--- a/gr-blocks/python/blocks/qa_mute.py
+++ b/gr-blocks/python/blocks/qa_mute.py
@@ -50,26 +50,26 @@ class test_mute(gr_unittest.TestCase):
self.assertEqual(exp_data, result_data)
def test_unmute_ii(self):
- src_data = (1, 2, 3, 4, 5)
- expected_result = (1, 2, 3, 4, 5)
+ src_data = [1, 2, 3, 4, 5]
+ expected_result = [1, 2, 3, 4, 5]
op = blocks.mute_ii(False)
self.help_ii((src_data,), expected_result, op)
def test_mute_ii(self):
- src_data = (1, 2, 3, 4, 5)
- expected_result = (0, 0, 0, 0, 0)
+ src_data = [1, 2, 3, 4, 5]
+ expected_result = [0, 0, 0, 0, 0]
op = blocks.mute_ii(True)
self.help_ii((src_data,), expected_result, op)
def test_unmute_cc(self):
- src_data = (1+5j, 2+5j, 3+5j, 4+5j, 5+5j)
- expected_result = (1+5j, 2+5j, 3+5j, 4+5j, 5+5j)
+ src_data = [1+5j, 2+5j, 3+5j, 4+5j, 5+5j]
+ expected_result = [1+5j, 2+5j, 3+5j, 4+5j, 5+5j]
op = blocks.mute_cc(False)
self.help_cc((src_data,), expected_result, op)
def test_unmute_cc(self):
- src_data = (1+5j, 2+5j, 3+5j, 4+5j, 5+5j)
- expected_result =(0+0j, 0+0j, 0+0j, 0+0j, 0+0j)
+ src_data = [1+5j, 2+5j, 3+5j, 4+5j, 5+5j]
+ expected_result =[0+0j, 0+0j, 0+0j, 0+0j, 0+0j]
op = blocks.mute_cc(True)
self.help_cc((src_data,), expected_result, op)
diff --git a/gr-blocks/python/blocks/qa_pack_k_bits.py b/gr-blocks/python/blocks/qa_pack_k_bits.py
index 955c54a62a..94ecad1b68 100644
--- a/gr-blocks/python/blocks/qa_pack_k_bits.py
+++ b/gr-blocks/python/blocks/qa_pack_k_bits.py
@@ -23,8 +23,8 @@ class test_pack(gr_unittest.TestCase):
self.tb = None
def test_001(self):
- src_data = (1,0,1,1,0,1,1,0)
- expected_results = (1,0,1,1,0,1,1,0)
+ src_data = [1,0,1,1,0,1,1,0]
+ expected_results = [1,0,1,1,0,1,1,0]
src = blocks.vector_source_b(src_data,False)
op = blocks.pack_k_bits_bb(1)
dst = blocks.vector_sink_b()
@@ -33,8 +33,8 @@ class test_pack(gr_unittest.TestCase):
self.assertEqual(expected_results, dst.data())
def test_002(self):
- src_data = (1,0,1,1,0,0,0,1)
- expected_results = ( 2, 3, 0, 1)
+ src_data = [1,0,1,1,0,0,0,1]
+ expected_results = [ 2, 3, 0, 1]
src = blocks.vector_source_b(src_data,False)
op = blocks.pack_k_bits_bb(2)
dst = blocks.vector_sink_b()
@@ -45,13 +45,13 @@ class test_pack(gr_unittest.TestCase):
def test_003(self):
src_data = expected_results = [random.randint(0,3) for x in range(10)];
- src = blocks.vector_source_b( src_data );
- pack = blocks.pack_k_bits_bb(2);
- unpack = blocks.unpack_k_bits_bb(2);
- snk = blocks.vector_sink_b();
- self.tb.connect(src,unpack,pack,snk);
+ src = blocks.vector_source_b( src_data )
+ pack = blocks.pack_k_bits_bb(2)
+ unpack = blocks.unpack_k_bits_bb(2)
+ snk = blocks.vector_sink_b()
+ self.tb.connect(src,unpack,pack,snk)
self.tb.run()
- self.assertEqual(list(expected_results), list(snk.data()));
+ self.assertEqual(list(expected_results), list(snk.data()))
if __name__ == '__main__':
gr_unittest.run(test_pack, "test_pack.xml")
diff --git a/gr-blocks/python/blocks/qa_packed_to_unpacked.py b/gr-blocks/python/blocks/qa_packed_to_unpacked.py
index b66cfdbf12..0bb618d282 100644
--- a/gr-blocks/python/blocks/qa_packed_to_unpacked.py
+++ b/gr-blocks/python/blocks/qa_packed_to_unpacked.py
@@ -23,8 +23,8 @@ class test_packing(gr_unittest.TestCase):
self.tb = None
def test_001(self):
- src_data = (0x80,)
- expected_results = (1,0,0,0,0,0,0,0)
+ src_data = [0x80,]
+ expected_results = [1,0,0,0,0,0,0,0]
src = blocks.vector_source_b(src_data, False)
op = blocks.packed_to_unpacked_bb(1, gr.GR_MSB_FIRST)
dst = blocks.vector_sink_b()
@@ -36,8 +36,8 @@ class test_packing(gr_unittest.TestCase):
self.assertEqual(expected_results, dst.data())
def test_002(self):
- src_data = (0x80,)
- expected_results = (0,0,0,0,0,0,0,1)
+ src_data = [0x80,]
+ expected_results = [0,0,0,0,0,0,0,1]
src = blocks.vector_source_b(src_data, False)
op = blocks.packed_to_unpacked_bb(1, gr.GR_LSB_FIRST)
dst = blocks.vector_sink_b()
@@ -49,8 +49,8 @@ class test_packing(gr_unittest.TestCase):
self.assertEqual(expected_results, dst.data())
def test_003(self):
- src_data = (0x11,)
- expected_results = (4, 2)
+ src_data = [0x11,]
+ expected_results = [4, 2]
src = blocks.vector_source_b(src_data, False)
op = blocks.packed_to_unpacked_bb(3, gr.GR_LSB_FIRST)
dst = blocks.vector_sink_b()
@@ -62,8 +62,8 @@ class test_packing(gr_unittest.TestCase):
self.assertEqual(expected_results, dst.data())
def test_004(self):
- src_data = (0x11,)
- expected_results = (0, 4)
+ src_data = [0x11,]
+ expected_results = [0, 4]
src = blocks.vector_source_b(src_data, False)
op = blocks.packed_to_unpacked_bb(3, gr.GR_MSB_FIRST)
dst = blocks.vector_sink_b()
@@ -75,8 +75,8 @@ class test_packing(gr_unittest.TestCase):
self.assertEqual(expected_results, dst.data())
def test_005(self):
- src_data = (1,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0)
- expected_results = (0x82, 0x5a)
+ src_data = [1,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0]
+ expected_results = [0x82, 0x5a]
src = blocks.vector_source_b(src_data, False)
op = blocks.unpacked_to_packed_bb(1, gr.GR_MSB_FIRST)
dst = blocks.vector_sink_b()
@@ -88,8 +88,8 @@ class test_packing(gr_unittest.TestCase):
self.assertEqual(expected_results, dst.data())
def test_006(self):
- src_data = (0,1,0,0,0,0,0,1,0,1,0,1,1,0,1,0)
- expected_results = (0x82, 0x5a)
+ src_data = [0,1,0,0,0,0,0,1,0,1,0,1,1,0,1,0]
+ expected_results = [0x82, 0x5a]
src = blocks.vector_source_b(src_data, False)
op = blocks.unpacked_to_packed_bb(1, gr.GR_LSB_FIRST)
dst = blocks.vector_sink_b()
@@ -101,8 +101,8 @@ class test_packing(gr_unittest.TestCase):
self.assertEqual(expected_results, dst.data())
def test_007(self):
- src_data = (4, 2, 0,0,0)
- expected_results = (0x11,)
+ src_data = [4, 2, 0,0,0]
+ expected_results = [0x11,]
src = blocks.vector_source_b(src_data, False)
op = blocks.unpacked_to_packed_bb(3, gr.GR_LSB_FIRST)
dst = blocks.vector_sink_b()
@@ -114,8 +114,8 @@ class test_packing(gr_unittest.TestCase):
self.assertEqual(expected_results, dst.data())
def test_008(self):
- src_data = (0, 4, 2,0,0)
- expected_results = (0x11,)
+ src_data = [0, 4, 2,0,0]
+ expected_results = [0x11,]
src = blocks.vector_source_b(src_data,False)
op = blocks.unpacked_to_packed_bb(3, gr.GR_MSB_FIRST)
dst = blocks.vector_sink_b()
@@ -131,7 +131,7 @@ class test_packing(gr_unittest.TestCase):
src_data = []
for i in range(202):
src_data.append((random.randint(0,255)))
- src_data = tuple(src_data)
+ src_data = src_data
expected_results = src_data
src = blocks.vector_source_b(tuple(src_data), False)
@@ -150,7 +150,7 @@ class test_packing(gr_unittest.TestCase):
src_data = []
for i in range(56):
src_data.append((random.randint(0,255)))
- src_data = tuple(src_data)
+ src_data = src_data
expected_results = src_data
src = blocks.vector_source_b(tuple(src_data), False)
op1 = blocks.packed_to_unpacked_bb(7, gr.GR_MSB_FIRST)
@@ -168,7 +168,7 @@ class test_packing(gr_unittest.TestCase):
src_data = []
for i in range(56):
src_data.append((random.randint(0,255)))
- src_data = tuple(src_data)
+ src_data = src_data
expected_results = src_data
src = blocks.vector_source_b(tuple(src_data),False)
op1 = blocks.packed_to_unpacked_bb(7, gr.GR_LSB_FIRST)
@@ -188,7 +188,7 @@ class test_packing(gr_unittest.TestCase):
src_data = []
for i in range(100):
src_data.append((random.randint(-2**15,2**15-1)))
- src_data = tuple(src_data)
+ src_data = src_data
expected_results = src_data
src = blocks.vector_source_s(tuple(src_data), False)
op1 = blocks.packed_to_unpacked_ss(1, gr.GR_MSB_FIRST)
@@ -206,7 +206,7 @@ class test_packing(gr_unittest.TestCase):
src_data = []
for i in range(100):
src_data.append((random.randint(-2**15,2**15-1)))
- src_data = tuple(src_data)
+ src_data = src_data
expected_results = src_data
src = blocks.vector_source_s(tuple(src_data), False)
op1 = blocks.packed_to_unpacked_ss(1, gr.GR_LSB_FIRST)
@@ -224,7 +224,7 @@ class test_packing(gr_unittest.TestCase):
src_data = []
for i in range(100):
src_data.append((random.randint(-2**15,2**15-1)))
- src_data = tuple(src_data)
+ src_data = src_data
expected_results = src_data
src = blocks.vector_source_s(tuple(src_data), False)
op1 = blocks.packed_to_unpacked_ss(8, gr.GR_MSB_FIRST)
@@ -242,7 +242,7 @@ class test_packing(gr_unittest.TestCase):
src_data = []
for i in range(100):
src_data.append((random.randint(-2**15,2**15-1)))
- src_data = tuple(src_data)
+ src_data = src_data
expected_results = src_data
src = blocks.vector_source_s(tuple(src_data), False)
op1 = blocks.packed_to_unpacked_ss(8, gr.GR_LSB_FIRST)
@@ -262,7 +262,7 @@ class test_packing(gr_unittest.TestCase):
src_data = []
for i in range(100):
src_data.append((random.randint(-2**31,2**31-1)))
- src_data = tuple(src_data)
+ src_data = src_data
expected_results = src_data
src = blocks.vector_source_i(tuple(src_data), False)
op1 = blocks.packed_to_unpacked_ii(1, gr.GR_MSB_FIRST)
@@ -280,7 +280,7 @@ class test_packing(gr_unittest.TestCase):
src_data = []
for i in range(100):
src_data.append((random.randint(-2**31,2**31-1)))
- src_data = tuple(src_data)
+ src_data = src_data
expected_results = src_data
src = blocks.vector_source_i(tuple(src_data), False)
op1 = blocks.packed_to_unpacked_ii(1, gr.GR_LSB_FIRST)
@@ -298,7 +298,7 @@ class test_packing(gr_unittest.TestCase):
src_data = []
for i in range(100):
src_data.append((random.randint(-2**31,2**31-1)))
- src_data = tuple(src_data)
+ src_data = src_data
expected_results = src_data
src = blocks.vector_source_i(tuple(src_data), False)
op1 = blocks.packed_to_unpacked_ii(8, gr.GR_MSB_FIRST)
@@ -316,7 +316,7 @@ class test_packing(gr_unittest.TestCase):
src_data = []
for i in range(100):
src_data.append((random.randint(-2**31,2**31-1)))
- src_data = tuple(src_data)
+ src_data = src_data
expected_results = src_data
src = blocks.vector_source_i(tuple(src_data), False)
op1 = blocks.packed_to_unpacked_ii(8, gr.GR_LSB_FIRST)
diff --git a/gr-blocks/python/blocks/qa_peak_detector.py b/gr-blocks/python/blocks/qa_peak_detector.py
index 4583bf17a9..fb7b16b4cc 100644
--- a/gr-blocks/python/blocks/qa_peak_detector.py
+++ b/gr-blocks/python/blocks/qa_peak_detector.py
@@ -25,8 +25,8 @@ class test_peak_detector(gr_unittest.TestCase):
data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
- expected_result = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
+ expected_result = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
src = blocks.vector_source_f(data, False)
regen = blocks.peak_detector_fb()
@@ -46,8 +46,8 @@ class test_peak_detector(gr_unittest.TestCase):
data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
- expected_result = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
+ expected_result = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
src = blocks.vector_source_i(data, False)
regen = blocks.peak_detector_ib()
@@ -67,8 +67,8 @@ class test_peak_detector(gr_unittest.TestCase):
data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
- expected_result = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
+ expected_result = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
src = blocks.vector_source_s(data, False)
regen = blocks.peak_detector_sb()
diff --git a/gr-blocks/python/blocks/qa_peak_detector2.py b/gr-blocks/python/blocks/qa_peak_detector2.py
index eeb234aff8..5c19a2f0ae 100644
--- a/gr-blocks/python/blocks/qa_peak_detector2.py
+++ b/gr-blocks/python/blocks/qa_peak_detector2.py
@@ -24,11 +24,11 @@ class test_peak_detector2(gr_unittest.TestCase):
tb = self.tb
n=10
- data = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,)+n*(0,)
+ data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+ 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,]+n*[0,]
- expected_result = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)+n*(0,)
+ expected_result = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]+n*[0,]
src = blocks.vector_source_f(data, False)
@@ -48,11 +48,11 @@ class test_peak_detector2(gr_unittest.TestCase):
tb = self.tb
n=10
- data = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,)+n*(0,)
+ data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+ 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,]+n*[0,]
- expected_result = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)+n*(0,)
+ expected_result = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]+n*[0,]
src = blocks.vector_source_f(data, False)
@@ -76,8 +76,8 @@ class test_peak_detector2(gr_unittest.TestCase):
l = 8100
m = 100
n = 10
- data = l*(0,)+ (10,)+ m*(0,)+(100,)+ n*(0,)
- expected_result = l*(0,)+ (0,)+ m*(0,)+(1,)+ n*(0,)
+ data = l*[0,]+ [10,]+ m*[0,]+[100,]+ n*[0,]
+ expected_result = l*[0,]+ [0,]+ m*[0,]+[1,]+ n*[0,]
src = blocks.vector_source_f(data, False)
@@ -100,8 +100,8 @@ class test_peak_detector2(gr_unittest.TestCase):
l = 8100
m = 100
n = 10
- data = l*(0,)+ (10,)+ m*(0,)+(100,)+ n*(0,)
- expected_result = l*(0,)+ (0,)+ m*(0,)+(1,)+ n*(0,)
+ data = l*[0,]+ [10,]+ m*[0,]+[100,]+ n*[0,]
+ expected_result = l*[0,]+ [0,]+ m*[0,]+[1,]+ n*[0,]
src = blocks.vector_source_f(data, False)
diff --git a/gr-blocks/python/blocks/qa_pipe_fittings.py b/gr-blocks/python/blocks/qa_pipe_fittings.py
index e2016fe380..b239f46a39 100644
--- a/gr-blocks/python/blocks/qa_pipe_fittings.py
+++ b/gr-blocks/python/blocks/qa_pipe_fittings.py
@@ -17,7 +17,7 @@ def calc_expected_result(src_data, n):
#print "len(result) =", len(result)
for i in range(len(src_data)):
(result[i % n]).append(src_data[i])
- return [tuple(x) for x in result]
+ return result
class test_pipe_fittings(gr_unittest.TestCase):
@@ -59,7 +59,7 @@ class test_pipe_fittings(gr_unittest.TestCase):
n = 8
src_len = n * 8
- src_data = tuple(range(src_len))
+ src_data = list(range(src_len))
expected_results = src_data
src = blocks.vector_source_i(src_data)
@@ -81,7 +81,7 @@ class test_pipe_fittings(gr_unittest.TestCase):
n = 8
src_len = n * 8
- src_data = tuple(range(src_len))
+ src_data = list(range(src_len))
expected_results = src_data
src = blocks.vector_source_i(src_data)
@@ -104,7 +104,7 @@ class test_pipe_fittings(gr_unittest.TestCase):
n = 8
src_len = n * 8
- src_data = tuple(range(src_len))
+ src_data = list(range(src_len))
expected_results = src_data
src = blocks.vector_source_i(src_data)
diff --git a/gr-blocks/python/blocks/qa_plateau_detector_fb.py b/gr-blocks/python/blocks/qa_plateau_detector_fb.py
index aeff70609d..3e82a41d0d 100644
--- a/gr-blocks/python/blocks/qa_plateau_detector_fb.py
+++ b/gr-blocks/python/blocks/qa_plateau_detector_fb.py
@@ -21,8 +21,8 @@ class qa_plateau_detector_fb (gr_unittest.TestCase):
def test_001_t (self):
# | Spur spike 1 | Plateau | Spur spike 2
- test_signal = (0, 1, .2, .4, .6, .8, 1, 1, 1, 1, 1, .8, .6, .4, 1, 0)
- expected_sig = (0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0)
+ test_signal = [0, 1, .2, .4, .6, .8, 1, 1, 1, 1, 1, .8, .6, .4, 1, 0]
+ expected_sig = [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
# | Center of Plateau
sink = blocks.vector_sink_b()
self.tb.connect(blocks.vector_source_f(test_signal), blocks.plateau_detector_fb(5), sink)
diff --git a/gr-blocks/python/blocks/qa_regenerate.py b/gr-blocks/python/blocks/qa_regenerate.py
index b3ce34fa4b..3c4ae9feb1 100644
--- a/gr-blocks/python/blocks/qa_regenerate.py
+++ b/gr-blocks/python/blocks/qa_regenerate.py
@@ -26,9 +26,9 @@ class test_regenerate(gr_unittest.TestCase):
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
- expected_result = (0, 0, 0,
+ expected_result = [0, 0, 0,
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
+ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
src = blocks.vector_source_b(data, False)
@@ -71,7 +71,7 @@ class test_regenerate(gr_unittest.TestCase):
dst_data = dst.data()
- self.assertEqual(tuple(expected_result), dst_data)
+ self.assertEqual(expected_result, dst_data)
if __name__ == '__main__':
diff --git a/gr-blocks/python/blocks/qa_repack_bits_bb.py b/gr-blocks/python/blocks/qa_repack_bits_bb.py
index 4c74383f3b..37ef640e90 100644
--- a/gr-blocks/python/blocks/qa_repack_bits_bb.py
+++ b/gr-blocks/python/blocks/qa_repack_bits_bb.py
@@ -25,8 +25,8 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
def test_001_simple (self):
""" Very simple test, 2 bits -> 1 """
- src_data = (0b11, 0b01, 0b10)
- expected_data = (0b1, 0b1, 0b1, 0b0, 0b0, 0b1)
+ src_data = [0b11, 0b01, 0b10]
+ expected_data = [0b1, 0b1, 0b1, 0b0, 0b0, 0b1]
k = 2
l = 1
src = blocks.vector_source_b(src_data, False, 1)
@@ -38,8 +38,8 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
def test_001_simple_msb (self):
""" Very simple test, 2 bits -> 1 with MSB set """
- src_data = (0b11, 0b01, 0b10)
- expected_data = (0b1, 0b1, 0b0, 0b1, 0b1, 0b0)
+ src_data = [0b11, 0b01, 0b10]
+ expected_data = [0b1, 0b1, 0b0, 0b1, 0b1, 0b0]
k = 2
l = 1
src = blocks.vector_source_b(src_data, False, 1)
@@ -51,8 +51,8 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
def test_002_three (self):
""" 8 -> 3 """
- src_data = (0b11111101, 0b11111111, 0b11111111)
- expected_data = (0b101,) + (0b111,) * 7
+ src_data = [0b11111101, 0b11111111, 0b11111111]
+ expected_data = [0b101,] + [0b111,] * 7
k = 8
l = 3
src = blocks.vector_source_b(src_data, False, 1)
@@ -64,8 +64,8 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
def test_002_three (self):
""" 8 -> 3 """
- src_data = (0b11111101, 0b11111111, 0b11111111)
- expected_data = (0b101,) + (0b111,) * 7
+ src_data = [0b11111101, 0b11111111, 0b11111111]
+ expected_data = [0b101,] + [0b111,] * 7
k = 8
l = 3
src = blocks.vector_source_b(src_data, False, 1)
@@ -77,8 +77,8 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
def test_002_three_msb (self):
""" 8 -> 3 """
- src_data = (0b11111101, 0b11111111, 0b11111111)
- expected_data = (0b111,) + (0b111,) + (0b011,) + (0b111,) * 5
+ src_data = [0b11111101, 0b11111111, 0b11111111]
+ expected_data = [0b111,] + [0b111,] + [0b011,] + [0b111,] * 5
k = 8
l = 3
src = blocks.vector_source_b(src_data, False, 1)
@@ -90,7 +90,7 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
def test_003_lots_of_bytes (self):
""" Lots and lots of bytes, multiple packer stages """
- src_data = tuple([random.randint(0, 255) for x in range(3*5*7*8 * 10)])
+ src_data = [random.randint(0, 255) for x in range(3*5*7*8 * 10)]
src = blocks.vector_source_b(src_data, False, 1)
repack1 = blocks.repack_bits_bb(8, 3)
repack2 = blocks.repack_bits_bb(3, 5)
@@ -103,7 +103,7 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
def test_003_lots_of_bytes_msb (self):
""" Lots and lots of bytes, multiple packer stages """
- src_data = tuple([random.randint(0, 255) for x in range(3*5*7*8 * 10)])
+ src_data = [random.randint(0, 255) for x in range(3*5*7*8 * 10)]
src = blocks.vector_source_b(src_data, False, 1)
repack1 = blocks.repack_bits_bb(8, 3, "", False, gr.GR_MSB_FIRST)
repack2 = blocks.repack_bits_bb(3, 5, "", False, gr.GR_MSB_FIRST)
@@ -116,8 +116,8 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
def test_004_three_with_tags (self):
""" 8 -> 3 """
- src_data = (0b11111101, 0b11111111)
- expected_data = (0b101,) + (0b111,) * 4 + (0b001,)
+ src_data = [0b11111101, 0b11111111]
+ expected_data = [0b101,] + [0b111,] * 4 + [0b001,]
k = 8
l = 3
src = blocks.vector_source_b(src_data, False, 1)
@@ -135,8 +135,8 @@ class qa_repack_bits_bb (gr_unittest.TestCase):
def test_005_three_with_tags_trailing (self):
""" 3 -> 8, trailing bits """
- src_data = (0b101,) + (0b111,) * 4 + (0b001,)
- expected_data = (0b11111101, 0b11111111)
+ src_data = [0b101,] + [0b111,] * 4 + [0b001,]
+ expected_data = [0b11111101, 0b11111111]
k = 3
l = 8
src = blocks.vector_source_b(src_data, False, 1)
diff --git a/gr-blocks/python/blocks/qa_selector.py b/gr-blocks/python/blocks/qa_selector.py
index e4a6ecc744..c36cfefad5 100644
--- a/gr-blocks/python/blocks/qa_selector.py
+++ b/gr-blocks/python/blocks/qa_selector.py
@@ -21,8 +21,8 @@ class test_selector(gr_unittest.TestCase):
self.tb = None
def test_select_same(self):
- src_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
- expected_result = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
+ src_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+ expected_result = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
expected_drop = ()
num_inputs = 4; num_outputs = 4
@@ -99,8 +99,8 @@ class test_selector(gr_unittest.TestCase):
self.assertEqual(expected_result, dst_data)
def test_not_enabled (self):
- src_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
- expected_result = ()
+ src_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+ expected_result = []
num_inputs = 4; num_outputs = 4
input_index = 1; output_index = 2
diff --git a/gr-blocks/python/blocks/qa_skiphead.py b/gr-blocks/python/blocks/qa_skiphead.py
index 95a401b8df..32d28aff9c 100644
--- a/gr-blocks/python/blocks/qa_skiphead.py
+++ b/gr-blocks/python/blocks/qa_skiphead.py
@@ -35,7 +35,7 @@ class test_skiphead(gr_unittest.TestCase):
def test_skip_0(self):
skip_cnt = 0
- expected_result = tuple(self.src_data[skip_cnt:])
+ expected_result = self.src_data[skip_cnt:]
src1 = blocks.vector_source_i(self.src_data)
op = blocks.skiphead(gr.sizeof_int, skip_cnt)
dst1 = blocks.vector_sink_i()
@@ -46,7 +46,7 @@ class test_skiphead(gr_unittest.TestCase):
def test_skip_1(self):
skip_cnt = 1
- expected_result = tuple(self.src_data[skip_cnt:])
+ expected_result = self.src_data[skip_cnt:]
src1 = blocks.vector_source_i(self.src_data)
op = blocks.skiphead(gr.sizeof_int, skip_cnt)
dst1 = blocks.vector_sink_i()
@@ -57,7 +57,7 @@ class test_skiphead(gr_unittest.TestCase):
def test_skip_1023(self):
skip_cnt = 1023
- expected_result = tuple(self.src_data[skip_cnt:])
+ expected_result = self.src_data[skip_cnt:]
src1 = blocks.vector_source_i(self.src_data)
op = blocks.skiphead(gr.sizeof_int, skip_cnt)
dst1 = blocks.vector_sink_i()
@@ -68,7 +68,7 @@ class test_skiphead(gr_unittest.TestCase):
def test_skip_6339(self):
skip_cnt = 6339
- expected_result = tuple(self.src_data[skip_cnt:])
+ expected_result = self.src_data[skip_cnt:]
src1 = blocks.vector_source_i(self.src_data)
op = blocks.skiphead(gr.sizeof_int, skip_cnt)
dst1 = blocks.vector_sink_i()
@@ -79,7 +79,7 @@ class test_skiphead(gr_unittest.TestCase):
def test_skip_12678(self):
skip_cnt = 12678
- expected_result = tuple(self.src_data[skip_cnt:])
+ expected_result = self.src_data[skip_cnt:]
src1 = blocks.vector_source_i(self.src_data)
op = blocks.skiphead(gr.sizeof_int, skip_cnt)
dst1 = blocks.vector_sink_i()
@@ -90,7 +90,7 @@ class test_skiphead(gr_unittest.TestCase):
def test_skip_all(self):
skip_cnt = len(self.src_data)
- expected_result = tuple(self.src_data[skip_cnt:])
+ expected_result = self.src_data[skip_cnt:]
src1 = blocks.vector_source_i(self.src_data)
op = blocks.skiphead(gr.sizeof_int, skip_cnt)
dst1 = blocks.vector_sink_i()
@@ -101,7 +101,7 @@ class test_skiphead(gr_unittest.TestCase):
def test_skip_tags(self):
skip_cnt = 25
- expected_result = tuple(self.src_data[skip_cnt:])
+ expected_result = self.src_data[skip_cnt:]
src_tags = tuple([make_tag('foo', 'bar', 1, 'src'),
make_tag('baz', 'qux', 50, 'src')])
diff --git a/gr-blocks/python/blocks/qa_stream_mux.py b/gr-blocks/python/blocks/qa_stream_mux.py
index ee9d5981a5..54dc9511bc 100644
--- a/gr-blocks/python/blocks/qa_stream_mux.py
+++ b/gr-blocks/python/blocks/qa_stream_mux.py
@@ -91,14 +91,14 @@ class test_stream_mux (gr_unittest.TestCase):
stream_sizes = [10, 10]
result_data = self.help_stream_2ff(N, stream_sizes)
- exp_data = (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ exp_data = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0)
+ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0]
self.assertEqual (exp_data, result_data)
def test_stream_ramp_2NN_ff(self):
@@ -106,14 +106,14 @@ class test_stream_mux (gr_unittest.TestCase):
stream_sizes = [10, 10]
result_data = self.help_stream_ramp_2ff(N, stream_sizes)
- exp_data = ( 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
+ exp_data = [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
39.0, 38.0, 37.0, 36.0, 35.0, 34.0, 33.0, 32.0, 31.0, 30.0,
10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0,
29.0, 28.0, 27.0, 26.0, 25.0, 24.0, 23.0, 22.0, 21.0, 20.0,
20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0,
19.0, 18.0, 17.0, 16.0, 15.0, 14.0, 13.0, 12.0, 11.0, 10.0,
30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0,
- 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0)
+ 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0]
self.assertEqual (exp_data, result_data)
def test_stream_2NM_ff(self):
@@ -123,7 +123,7 @@ class test_stream_mux (gr_unittest.TestCase):
result_data = self.help_stream_2ff(N, stream_sizes)
- exp_data = (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ exp_data = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
@@ -132,7 +132,7 @@ class test_stream_mux (gr_unittest.TestCase):
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 2.0, 2.0, 2.0, 2.0)
+ 2.0, 2.0, 2.0, 2.0]
self.assertEqual (exp_data, result_data)
@@ -144,7 +144,7 @@ class test_stream_mux (gr_unittest.TestCase):
result_data = self.help_stream_2ff(N, stream_sizes)
- exp_data = (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ exp_data = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
@@ -153,7 +153,7 @@ class test_stream_mux (gr_unittest.TestCase):
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 2.0)
+ 2.0]
self.assertEqual (exp_data, result_data)
@@ -164,11 +164,11 @@ class test_stream_mux (gr_unittest.TestCase):
result_data = self.help_stream_2ff(N, stream_sizes)
- exp_data = (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ exp_data = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1.0, 1.0)
+ 1.0, 1.0]
self.assertEqual (exp_data, result_data)
@@ -179,17 +179,17 @@ class test_stream_mux (gr_unittest.TestCase):
result_data = self.help_stream_2ff(N, stream_sizes)
- exp_data = (2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
+ exp_data = [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
- 2.0, 2.0, 2.0)
+ 2.0, 2.0, 2.0]
self.assertEqual (exp_data, result_data)
def test_largeN_ff(self):
stream_sizes = [3, 8191]
- r1 = (1,) * stream_sizes[0]
- r2 = (2,) * stream_sizes[1]
+ r1 = [1,] * stream_sizes[0]
+ r2 = [2,] * stream_sizes[1]
v0 = blocks.vector_source_f(r1, repeat=False)
v1 = blocks.vector_source_f(r2, repeat=False)
mux = blocks.stream_mux(gr.sizeof_float, stream_sizes)
diff --git a/gr-blocks/python/blocks/qa_stream_to_tagged_stream.py b/gr-blocks/python/blocks/qa_stream_to_tagged_stream.py
index 4b30a42b19..0241c6761e 100644
--- a/gr-blocks/python/blocks/qa_stream_to_tagged_stream.py
+++ b/gr-blocks/python/blocks/qa_stream_to_tagged_stream.py
@@ -22,7 +22,7 @@ class qa_stream_to_tagged_stream (gr_unittest.TestCase):
self.tb = None
def test_001_t (self):
- src_data = (1, ) * 50
+ src_data = [1, ] * 50
packet_len = 10
len_tag_key = 'packet_len'
src = blocks.vector_source_f(src_data, False, 1)
diff --git a/gr-blocks/python/blocks/qa_tag_file_sink.py b/gr-blocks/python/blocks/qa_tag_file_sink.py
index 8eecad99d2..9de9dd224c 100644
--- a/gr-blocks/python/blocks/qa_tag_file_sink.py
+++ b/gr-blocks/python/blocks/qa_tag_file_sink.py
@@ -21,8 +21,8 @@ class test_tag_file_sink(gr_unittest.TestCase):
self.tb = None
def test_001(self):
- src_data = ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
- trg_data = (-1, -1, 1, 1, -1, -1, 1, 1, -1, -1)
+ src_data = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+ trg_data = [-1, -1, 1, 1, -1, -1, 1, 1, -1, -1]
src = blocks.vector_source_i(src_data)
trg = blocks.vector_source_s(trg_data)
op = blocks.burst_tagger(gr.sizeof_int)
diff --git a/gr-blocks/python/blocks/qa_tag_share.py b/gr-blocks/python/blocks/qa_tag_share.py
index 21790970d3..9d3d9c47bd 100755
--- a/gr-blocks/python/blocks/qa_tag_share.py
+++ b/gr-blocks/python/blocks/qa_tag_share.py
@@ -28,8 +28,8 @@ class qa_tag_share(gr_unittest.TestCase):
tag_offset = 0
in0_value = 1.0+1.0j
in1_value = 2.717
- in0_data = (in0_value,)*10
- in1_data = (in1_value,)*10
+ in0_data = [in0_value,]*10
+ in1_data = [in1_value,]*10
sink_data = in0_data
tag = gr.tag_t()
diff --git a/gr-blocks/python/blocks/qa_tagged_stream_mux.py b/gr-blocks/python/blocks/qa_tagged_stream_mux.py
index d8c6faf778..bd1a8e438d 100644
--- a/gr-blocks/python/blocks/qa_tagged_stream_mux.py
+++ b/gr-blocks/python/blocks/qa_tagged_stream_mux.py
@@ -45,7 +45,7 @@ class qa_tagged_stream_mux (gr_unittest.TestCase):
packets1 = (
(3, 4), (7, 8, 9), (11, 12, 13), (17,)
)
- expected = ((0, 1, 2, 3, 4), (5, 6, 7, 8, 9), (10, 11, 12, 13), (14, 15, 16, 17))
+ expected = [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13], [14, 15, 16, 17]]
data0, tags0 = self.setup_data_tags(packets0)
data1, tags1 = self.setup_data_tags(packets1)
tags0.append(make_tag('spam', 42, 4))
@@ -95,7 +95,7 @@ class qa_tagged_stream_mux (gr_unittest.TestCase):
self.tb.connect(mux, sink)
self.tb.run()
self.assertEqual(len(sink.data()), 1)
- self.assertEqual(sink.data()[0], tuple(data0 + data1))
+ self.assertEqual(sink.data()[0], data0 + data1)
self.assertEqual(len(sink.tags()), 1)
tag = gr.tag_to_python(sink.tags()[0])
tag = (tag.offset, tag.key, tag.value)
diff --git a/gr-blocks/python/blocks/qa_threshold.py b/gr-blocks/python/blocks/qa_threshold.py
index 079a12d613..bb7f01f96b 100644
--- a/gr-blocks/python/blocks/qa_threshold.py
+++ b/gr-blocks/python/blocks/qa_threshold.py
@@ -24,7 +24,7 @@ class test_threshold(gr_unittest.TestCase):
data = [0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2]
- expected_result = (0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1)
+ expected_result = [0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1]
src = blocks.vector_source_f(data, False)
op = blocks.threshold_ff(1, 1)
diff --git a/gr-blocks/python/blocks/qa_throttle.py b/gr-blocks/python/blocks/qa_throttle.py
index 88495c9cc3..e6d3212cbe 100644
--- a/gr-blocks/python/blocks/qa_throttle.py
+++ b/gr-blocks/python/blocks/qa_throttle.py
@@ -23,7 +23,7 @@ class test_throttle(gr_unittest.TestCase):
self.tb = None
def test_throttling(self):
- src_data = (1, 2, 3)
+ src_data = [1, 2, 3]
src = blocks.vector_source_c(src_data)
thr = blocks.throttle(gr.sizeof_gr_complex, 10)
dst = blocks.vector_sink_c()
@@ -41,7 +41,7 @@ class test_throttle(gr_unittest.TestCase):
self.assertEqual(src_data, dst_data)
def test_rx_rate_tag(self):
- src_data = (1, 2, 3, 4, 5, 6)
+ src_data = [1, 2, 3, 4, 5, 6]
tag = gr.tag_t()
tag.key = pmt.string_to_symbol("rx_rate")
tag.value = pmt.to_pmt(20)
diff --git a/gr-blocks/python/blocks/qa_tsb_vector_sink_X.py b/gr-blocks/python/blocks/qa_tsb_vector_sink_X.py
index 36d1dac752..3cdb7e4f82 100644
--- a/gr-blocks/python/blocks/qa_tsb_vector_sink_X.py
+++ b/gr-blocks/python/blocks/qa_tsb_vector_sink_X.py
@@ -38,7 +38,7 @@ class qa_tsb_vector_sink (gr_unittest.TestCase):
sink
)
self.tb.run()
- self.assertEqual((tuple(data[0:packet_len]), tuple(data[packet_len:])), sink.data())
+ self.assertEqual([data[0:packet_len], data[packet_len:]], sink.data())
self.assertEqual(len(sink.tags()), 1)
self.assertEqual(sink.tags()[0].offset, tag.offset)
diff --git a/gr-blocks/python/blocks/qa_type_conversions.py b/gr-blocks/python/blocks/qa_type_conversions.py
index 2d5852be82..bb7dfe5d02 100644
--- a/gr-blocks/python/blocks/qa_type_conversions.py
+++ b/gr-blocks/python/blocks/qa_type_conversions.py
@@ -23,7 +23,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_char_to_float_identity(self):
src_data = (1, 2, 3, 4, 5)
- expected_data = (1.0, 2.0, 3.0, 4.0, 5.0)
+ expected_data = [1.0, 2.0, 3.0, 4.0, 5.0]
src = blocks.vector_source_b(src_data)
op = blocks.char_to_float()
dst = blocks.vector_sink_f()
@@ -33,7 +33,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_char_to_float_scale(self):
src_data = (1, 2, 3, 4, 5)
- expected_data = (0.5, 1.0, 1.5, 2.0, 2.5)
+ expected_data = [0.5, 1.0, 1.5, 2.0, 2.5]
src = blocks.vector_source_b(src_data)
op = blocks.char_to_float(scale=2.0)
dst = blocks.vector_sink_f()
@@ -43,7 +43,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_char_to_short(self):
src_data = (1, 2, 3, 4, 5)
- expected_data = (256, 512, 768, 1024, 1280)
+ expected_data = [256, 512, 768, 1024, 1280]
src = blocks.vector_source_b(src_data)
op = blocks.char_to_short()
dst = blocks.vector_sink_s()
@@ -53,7 +53,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_complex_to_interleaved_char(self):
src_data = (1+2j, 3+4j, 5+6j, 7+8j, 9+10j)
- expected_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
+ expected_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
src = blocks.vector_source_c(src_data)
op = blocks.complex_to_interleaved_char()
dst = blocks.vector_sink_b()
@@ -63,7 +63,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_complex_to_interleaved_short(self):
src_data = (1+2j, 3+4j, 5+6j, 7+8j, 9+10j)
- expected_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
+ expected_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
src = blocks.vector_source_c(src_data)
op = blocks.complex_to_interleaved_short()
dst = blocks.vector_sink_s()
@@ -73,7 +73,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_complex_to_float_1(self):
src_data = (1+2j, 3+4j, 5+6j, 7+8j, 9+10j)
- expected_data = (1.0, 3.0, 5.0, 7.0, 9.0)
+ expected_data = [1.0, 3.0, 5.0, 7.0, 9.0]
src = blocks.vector_source_c(src_data)
op = blocks.complex_to_float()
dst = blocks.vector_sink_f()
@@ -83,8 +83,8 @@ class test_type_conversions(gr_unittest.TestCase):
def test_complex_to_float_2(self):
src_data = (1+2j, 3+4j, 5+6j, 7+8j, 9+10j)
- expected_data1 = (1.0, 3.0, 5.0, 7.0, 9.0)
- expected_data2 = (2.0, 4.0, 6.0, 8.0, 10.0)
+ expected_data1 = [1.0, 3.0, 5.0, 7.0, 9.0]
+ expected_data2 = [2.0, 4.0, 6.0, 8.0, 10.0]
src = blocks.vector_source_c(src_data)
op = blocks.complex_to_float()
dst1 = blocks.vector_sink_f()
@@ -98,7 +98,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_complex_to_real(self):
src_data = (1+2j, 3+4j, 5+6j, 7+8j, 9+10j)
- expected_data = (1.0, 3.0, 5.0, 7.0, 9.0)
+ expected_data = [1.0, 3.0, 5.0, 7.0, 9.0]
src = blocks.vector_source_c(src_data)
op = blocks.complex_to_real()
dst = blocks.vector_sink_f()
@@ -108,7 +108,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_complex_to_imag(self):
src_data = (1+2j, 3+4j, 5+6j, 7+8j, 9+10j)
- expected_data = (2.0, 4.0, 6.0, 8.0, 10.0)
+ expected_data = [2.0, 4.0, 6.0, 8.0, 10.0]
src = blocks.vector_source_c(src_data)
op = blocks.complex_to_imag()
dst = blocks.vector_sink_f()
@@ -118,7 +118,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_complex_to_mag(self):
src_data = (1+2j, 3-4j, 5+6j, 7-8j, -9+10j)
- expected_data = (sqrt(5), sqrt(25), sqrt(61), sqrt(113), sqrt(181))
+ expected_data = [sqrt(5), sqrt(25), sqrt(61), sqrt(113), sqrt(181)]
src = blocks.vector_source_c(src_data)
op = blocks.complex_to_mag()
dst = blocks.vector_sink_f()
@@ -128,7 +128,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_complex_to_mag_squared(self):
src_data = (1+2j, 3-4j, 5+6j, 7-8j, -9+10j)
- expected_data = (5.0, 25.0, 61.0, 113.0, 181.0)
+ expected_data = [5.0, 25.0, 61.0, 113.0, 181.0]
src = blocks.vector_source_c(src_data)
op = blocks.complex_to_mag_squared()
dst = blocks.vector_sink_f()
@@ -138,7 +138,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_complex_to_arg(self):
src_data = (1+2j, 3-4j, 5+6j, 7-8j, -9+10j)
- expected_data = (atan2(2, 1), atan2(-4,3), atan2(6, 5), atan2(-8, 7), atan2(10,-9))
+ expected_data = [atan2(2, 1), atan2(-4,3), atan2(6, 5), atan2(-8, 7), atan2(10,-9)]
src = blocks.vector_source_c(src_data)
op = blocks.complex_to_arg()
dst = blocks.vector_sink_f()
@@ -148,7 +148,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_float_to_char_identity(self):
src_data = (1.0, 2.0, 3.0, 4.0, 5.0)
- expected_data = (1, 2, 3, 4, 5)
+ expected_data = [1, 2, 3, 4, 5]
src = blocks.vector_source_f(src_data)
op = blocks.float_to_char()
dst = blocks.vector_sink_b()
@@ -158,7 +158,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_float_to_char_scale(self):
src_data = (1.0, 2.0, 3.0, 4.0, 5.0)
- expected_data = (5, 10, 15, 20, 25)
+ expected_data = [5, 10, 15, 20, 25]
src = blocks.vector_source_f(src_data)
op = blocks.float_to_char(1, 5)
dst = blocks.vector_sink_b()
@@ -168,7 +168,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_float_to_complex_1(self):
src_data = (1.0, 3.0, 5.0, 7.0, 9.0)
- expected_data = (1+0j, 3+0j, 5+0j, 7+0j, 9+0j)
+ expected_data = [1+0j, 3+0j, 5+0j, 7+0j, 9+0j]
src = blocks.vector_source_f(src_data)
op = blocks.float_to_complex()
dst = blocks.vector_sink_c()
@@ -179,7 +179,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_float_to_complex_2(self):
src1_data = (1.0, 3.0, 5.0, 7.0, 9.0)
src2_data = (2.0, 4.0, 6.0, 8.0, 10.0)
- expected_data = (1+2j, 3+4j, 5+6j, 7+8j, 9+10j)
+ expected_data = [1+2j, 3+4j, 5+6j, 7+8j, 9+10j]
src1 = blocks.vector_source_f(src1_data)
src2 = blocks.vector_source_f(src2_data)
op = blocks.float_to_complex()
@@ -192,7 +192,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_float_to_int_identity(self):
src_data = (1.0, 2.0, 3.0, 4.0, 5.0)
- expected_data = (1, 2, 3, 4, 5)
+ expected_data = [1, 2, 3, 4, 5]
src = blocks.vector_source_f(src_data)
op = blocks.float_to_int()
dst = blocks.vector_sink_i()
@@ -202,7 +202,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_float_to_int_scale(self):
src_data = (1.0, 2.0, 3.0, 4.0, 5.0)
- expected_data = (5, 10, 15, 20, 25)
+ expected_data = [5, 10, 15, 20, 25]
src = blocks.vector_source_f(src_data)
op = blocks.float_to_int(1, 5)
dst = blocks.vector_sink_i()
@@ -212,7 +212,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_float_to_short_identity(self):
src_data = (1.0, 2.0, 3.0, 4.0, 5.0)
- expected_data = (1, 2, 3, 4, 5)
+ expected_data = [1, 2, 3, 4, 5]
src = blocks.vector_source_f(src_data)
op = blocks.float_to_short()
dst = blocks.vector_sink_s()
@@ -222,7 +222,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_float_to_short_scale(self):
src_data = (1.0, 2.0, 3.0, 4.0, 5.0)
- expected_data = (5, 10, 15, 20, 25)
+ expected_data = [5, 10, 15, 20, 25]
src = blocks.vector_source_f(src_data)
op = blocks.float_to_short(1, 5)
dst = blocks.vector_sink_s()
@@ -232,7 +232,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_float_to_uchar(self):
src_data = (1.0, -2.0, 3.0, -4.0, 256.0)
- expected_data = (1, 0, 3, 0, 255)
+ expected_data = [1, 0, 3, 0, 255]
src = blocks.vector_source_f(src_data)
op = blocks.float_to_uchar()
dst = blocks.vector_sink_b()
@@ -242,7 +242,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_int_to_float_identity(self):
src_data = (1, 2, 3, 4, 5)
- expected_data = (1.0, 2.0, 3.0, 4.0, 5.0)
+ expected_data = [1.0, 2.0, 3.0, 4.0, 5.0]
src = blocks.vector_source_i(src_data)
op = blocks.int_to_float()
dst = blocks.vector_sink_f()
@@ -252,7 +252,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_int_to_float_scale(self):
src_data = (1, 2, 3, 4, 5)
- expected_data = (0.2, 0.4, 0.6, 0.8, 1.0)
+ expected_data = [0.2, 0.4, 0.6, 0.8, 1.0]
src = blocks.vector_source_i(src_data)
op = blocks.int_to_float(1, 5)
dst = blocks.vector_sink_f()
@@ -262,7 +262,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_interleaved_short_to_complex(self):
src_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
- expected_data = (1+2j, 3+4j, 5+6j, 7+8j, 9+10j)
+ expected_data = [1+2j, 3+4j, 5+6j, 7+8j, 9+10j]
src = blocks.vector_source_s(src_data)
op = blocks.interleaved_short_to_complex()
dst = blocks.vector_sink_c()
@@ -272,7 +272,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_short_to_char(self):
src_data = (256, 512, 768, 1024, 1280)
- expected_data = (1, 2, 3, 4, 5)
+ expected_data = [1, 2, 3, 4, 5]
src = blocks.vector_source_s(src_data)
op = blocks.short_to_char()
dst = blocks.vector_sink_b()
@@ -282,7 +282,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_short_to_float_identity(self):
src_data = (1, 2, 3, 4, 5)
- expected_data = (1.0, 2.0, 3.0, 4.0, 5.0)
+ expected_data = [1.0, 2.0, 3.0, 4.0, 5.0]
src = blocks.vector_source_s(src_data)
op = blocks.short_to_float()
dst = blocks.vector_sink_f()
@@ -292,7 +292,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_short_to_float_scale(self):
src_data = (5, 10, 15, 20, 25)
- expected_data = (1.0, 2.0, 3.0, 4.0, 5.0)
+ expected_data = [1.0, 2.0, 3.0, 4.0, 5.0]
src = blocks.vector_source_s(src_data)
op = blocks.short_to_float(1, 5)
dst = blocks.vector_sink_f()
@@ -302,7 +302,7 @@ class test_type_conversions(gr_unittest.TestCase):
def test_uchar_to_float(self):
src_data = (1, 2, 3, 4, 5)
- expected_data = (1.0, 2.0, 3.0, 4.0, 5.0)
+ expected_data = [1.0, 2.0, 3.0, 4.0, 5.0]
src = blocks.vector_source_b(src_data)
op = blocks.uchar_to_float()
dst = blocks.vector_sink_f()
diff --git a/gr-blocks/python/blocks/qa_udp_source_sink.py b/gr-blocks/python/blocks/qa_udp_source_sink.py
index ca7bc7d7e7..ec03c56619 100644
--- a/gr-blocks/python/blocks/qa_udp_source_sink.py
+++ b/gr-blocks/python/blocks/qa_udp_source_sink.py
@@ -45,7 +45,7 @@ class test_udp_sink_source(gr_unittest.TestCase):
n_data = 16
src_data = [x for x in range(n_data)]
- expected_result = tuple(src_data)
+ expected_result = src_data
src = blocks.vector_source_s(src_data, False)
udp_snd = blocks.udp_sink(gr.sizeof_short, 'localhost', port)
self.tb_snd.connect(src, udp_snd)
@@ -64,7 +64,7 @@ class test_udp_sink_source(gr_unittest.TestCase):
n_data = 100
src_data = [float(x) for x in range(n_data)]
- expected_result = tuple(src_data)
+ expected_result = src_data
recvsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
recvsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
@@ -84,14 +84,14 @@ class test_udp_sink_source(gr_unittest.TestCase):
t.join()
recvsock.close()
- self.assertEqual(expected_result, tuple(result))
+ self.assertEqual(expected_result, result)
def test_source_001(self):
port = 65520
n_data = 100
src_data = [float(x) for x in range(n_data)]
- expected_result = tuple(src_data)
+ expected_result = src_data
send_data = numpy.array(src_data, dtype=numpy.float32)
send_data = send_data.tobytes()
@@ -108,7 +108,7 @@ class test_udp_sink_source(gr_unittest.TestCase):
sendsock.sendto(b'', ('127.0.0.1', port))
self.tb_rcv.wait()
sendsock.close()
- recv_data = tuple(dst.data())
+ recv_data = dst.data()
self.assertEqual(expected_result, recv_data)
@@ -125,7 +125,7 @@ class test_udp_sink_source(gr_unittest.TestCase):
n_data = 16
src_data = [float(x) for x in range(n_data)]
- expected_result = tuple(src_data)
+ expected_result = src_data
src = blocks.vector_source_f(src_data)
dst = blocks.vector_sink_f()
diff --git a/gr-blocks/python/blocks/qa_unpack_k_bits.py b/gr-blocks/python/blocks/qa_unpack_k_bits.py
index 770548bcb9..7c6c9f6825 100644
--- a/gr-blocks/python/blocks/qa_unpack_k_bits.py
+++ b/gr-blocks/python/blocks/qa_unpack_k_bits.py
@@ -23,8 +23,8 @@ class test_unpack(gr_unittest.TestCase):
self.tb = None
def test_001(self):
- src_data = (1,0,1,1,0,1,1,0)
- expected_results = (1,0,1,1,0,1,1,0)
+ src_data = [1,0,1,1,0,1,1,0]
+ expected_results = [1,0,1,1,0,1,1,0]
src = blocks.vector_source_b(src_data,False)
op = blocks.unpack_k_bits_bb(1)
dst = blocks.vector_sink_b()
@@ -33,8 +33,8 @@ class test_unpack(gr_unittest.TestCase):
self.assertEqual(expected_results, dst.data())
def test_002(self):
- src_data = ( 2, 3, 0, 1)
- expected_results = (1,0,1,1,0,0,0,1)
+ src_data = [ 2, 3, 0, 1]
+ expected_results = [1,0,1,1,0,0,0,1]
src = blocks.vector_source_b(src_data,False)
op = blocks.unpack_k_bits_bb(2)
dst = blocks.vector_sink_b()
diff --git a/gr-blocks/python/blocks/qa_vector_map.py b/gr-blocks/python/blocks/qa_vector_map.py
index 3efc8ea8c0..d73f1c0eea 100644
--- a/gr-blocks/python/blocks/qa_vector_map.py
+++ b/gr-blocks/python/blocks/qa_vector_map.py
@@ -63,12 +63,12 @@ class test_vector_map(gr_unittest.TestCase):
# First (d) is interleaving of a and b.
# Second (e) is interleaving of a and b and c. c is taken in
# chunks of 2 which are reversed.
- A = (1, 2, 3, 4, 5)
- B = (11, 12, 13, 14, 15)
- C = (99, 98, 97, 96, 95, 94, 93, 92, 91, 90)
- expected_D = (1, 11, 2, 12, 3, 13, 4, 14, 5, 15)
- expected_E = (1, 11, 98, 99, 2, 12, 96, 97, 3, 13, 94, 95,
- 4, 14, 92, 93, 5, 15, 90, 91)
+ A = [1, 2, 3, 4, 5]
+ B = [11, 12, 13, 14, 15]
+ C = [99, 98, 97, 96, 95, 94, 93, 92, 91, 90]
+ expected_D = [1, 11, 2, 12, 3, 13, 4, 14, 5, 15]
+ expected_E = [1, 11, 98, 99, 2, 12, 96, 97, 3, 13, 94, 95,
+ 4, 14, 92, 93, 5, 15, 90, 91]
mapping = [[(0, 0), (1, 0)], # mapping to produce D
[(0, 0), (1, 0), (2, 1), (2, 0)], # mapping to produce E
]
diff --git a/gr-blocks/python/blocks/qa_vector_sink_source.py b/gr-blocks/python/blocks/qa_vector_sink_source.py
index 512e8f1df1..db4eb5124b 100644
--- a/gr-blocks/python/blocks/qa_vector_sink_source.py
+++ b/gr-blocks/python/blocks/qa_vector_sink_source.py
@@ -37,7 +37,7 @@ class test_vector_sink_source(gr_unittest.TestCase):
def test_001(self):
# Test that sink has data set in source for the simplest case
src_data = [float(x) for x in range(16)]
- expected_result = tuple(src_data)
+ expected_result = src_data
src = blocks.vector_source_f(src_data)
dst = blocks.vector_sink_f()
@@ -50,7 +50,7 @@ class test_vector_sink_source(gr_unittest.TestCase):
def test_002(self):
# Test vectors (the gnuradio vector I/O type)
src_data = [float(x) for x in range(16)]
- expected_result = tuple(src_data)
+ expected_result = src_data
src = blocks.vector_source_f(src_data, False, 2)
dst = blocks.vector_sink_f(2)
@@ -64,14 +64,13 @@ class test_vector_sink_source(gr_unittest.TestCase):
# Test that we can only make vectors (the I/O type) if the input
# vector has sufficient size
src_data = [float(x) for x in range(16)]
- expected_result = tuple(src_data)
- self.assertRaises(TypeError, lambda : blocks.vector_source_f(src_data, False, 3))
+ self.assertRaises(ValueError, lambda : blocks.vector_source_f(src_data, False, 3))
def test_004(self):
# Test sending and receiving tagged streams
src_data = [float(x) for x in range(16)]
- expected_result = tuple(src_data)
- src_tags = tuple([make_tag('key', 'val', 0, 'src')])
+ expected_result = src_data
+ src_tags = [make_tag('key', 'val', 0, 'src')]
expected_tags = src_tags[:]
src = blocks.vector_source_f(src_data, repeat=False, tags=src_tags)
@@ -89,10 +88,10 @@ class test_vector_sink_source(gr_unittest.TestCase):
# Test that repeat works (with tagged streams)
length = 16
src_data = [float(x) for x in range(length)]
- expected_result = tuple(src_data + src_data)
- src_tags = tuple([make_tag('key', 'val', 0, 'src')])
- expected_tags = tuple([make_tag('key', 'val', 0, 'src'),
- make_tag('key', 'val', length, 'src')])
+ expected_result = src_data + src_data
+ src_tags = [make_tag('key', 'val', 0, 'src')]
+ expected_tags = [make_tag('key', 'val', 0, 'src'),
+ make_tag('key', 'val', length, 'src')]
src = blocks.vector_source_f(src_data, repeat=True, tags=src_tags)
head = blocks.head(gr.sizeof_float, 2*length)
@@ -110,7 +109,7 @@ class test_vector_sink_source(gr_unittest.TestCase):
def test_006(self):
# Test set_data
src_data = [float(x) for x in range(16)]
- expected_result = tuple(src_data)
+ expected_result = src_data
src = blocks.vector_source_f((3,1,4))
dst = blocks.vector_sink_f()
@@ -124,7 +123,7 @@ class test_vector_sink_source(gr_unittest.TestCase):
def test_007(self):
# Test set_repeat
src_data = [float(x) for x in range(16)]
- expected_result = tuple(src_data)
+ expected_result = src_data
src = blocks.vector_source_f(src_data, True)
dst = blocks.vector_sink_f()
diff --git a/gr-blocks/python/blocks/stream_to_vector_decimator.py b/gr-blocks/python/blocks/stream_to_vector_decimator.py
index 4153fff312..e451e19807 100644
--- a/gr-blocks/python/blocks/stream_to_vector_decimator.py
+++ b/gr-blocks/python/blocks/stream_to_vector_decimator.py
@@ -10,7 +10,7 @@ from __future__ import unicode_literals
from gnuradio import gr
-from . import blocks_swig as blocks
+from . import blocks_python as blocks
class stream_to_vector_decimator(gr.hier_block2):