summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnuradio-runtime/python/gnuradio/__init__.py34
-rw-r--r--gnuradio-runtime/python/gnuradio/gr/CMakeLists.txt14
-rw-r--r--gnuradio-runtime/python/gnuradio/gr/__init__.py13
-rw-r--r--gnuradio-runtime/python/gnuradio/gr/tag_utils.py7
-rw-r--r--gnuradio-runtime/python/pmt/__init__.py10
-rwxr-xr-xgnuradio-runtime/python/pmt/qa_pmt.py2
-rw-r--r--gr-analog/CMakeLists.txt2
-rw-r--r--gr-analog/python/analog/CMakeLists.txt (renamed from gr-analog/python/CMakeLists.txt)23
-rw-r--r--gr-analog/python/analog/__init__.py (renamed from gr-analog/python/__init__.py)8
-rw-r--r--gr-analog/python/analog/am_demod.py (renamed from gr-analog/python/am_demod.py)0
-rw-r--r--gr-analog/python/analog/fm_demod.py (renamed from gr-analog/python/fm_demod.py)0
-rw-r--r--gr-analog/python/analog/fm_emph.py (renamed from gr-analog/python/fm_emph.py)0
-rw-r--r--gr-analog/python/analog/nbfm_rx.py (renamed from gr-analog/python/nbfm_rx.py)0
-rw-r--r--gr-analog/python/analog/nbfm_tx.py (renamed from gr-analog/python/nbfm_tx.py)0
-rwxr-xr-xgr-analog/python/analog/qa_agc.py (renamed from gr-analog/python/qa_agc.py)6
-rwxr-xr-xgr-analog/python/analog/qa_cpfsk.py (renamed from gr-analog/python/qa_cpfsk.py)5
-rwxr-xr-xgr-analog/python/analog/qa_ctcss_squelch.py (renamed from gr-analog/python/qa_ctcss_squelch.py)4
-rwxr-xr-xgr-analog/python/analog/qa_dpll.py (renamed from gr-analog/python/qa_dpll.py)5
-rw-r--r--gr-analog/python/analog/qa_fastnoise.py (renamed from gr-analog/python/qa_fastnoise.py)3
-rwxr-xr-xgr-analog/python/analog/qa_fmdet.py (renamed from gr-analog/python/qa_fmdet.py)5
-rwxr-xr-xgr-analog/python/analog/qa_frequency_modulator.py (renamed from gr-analog/python/qa_frequency_modulator.py)5
-rwxr-xr-xgr-analog/python/analog/qa_noise.py (renamed from gr-analog/python/qa_noise.py)3
-rwxr-xr-xgr-analog/python/analog/qa_phase_modulator.py (renamed from gr-analog/python/qa_phase_modulator.py)5
-rwxr-xr-xgr-analog/python/analog/qa_pll_carriertracking.py (renamed from gr-analog/python/qa_pll_carriertracking.py)5
-rwxr-xr-xgr-analog/python/analog/qa_pll_freqdet.py (renamed from gr-analog/python/qa_pll_freqdet.py)5
-rwxr-xr-xgr-analog/python/analog/qa_pll_refout.py (renamed from gr-analog/python/qa_pll_refout.py)5
-rwxr-xr-xgr-analog/python/analog/qa_probe_avg_mag_sqrd.py (renamed from gr-analog/python/qa_probe_avg_mag_sqrd.py)5
-rwxr-xr-xgr-analog/python/analog/qa_pwr_squelch.py (renamed from gr-analog/python/qa_pwr_squelch.py)4
-rwxr-xr-xgr-analog/python/analog/qa_quadrature_demod.py (renamed from gr-analog/python/qa_quadrature_demod.py)5
-rwxr-xr-xgr-analog/python/analog/qa_rail_ff.py (renamed from gr-analog/python/qa_rail_ff.py)4
-rwxr-xr-xgr-analog/python/analog/qa_sig_source.py (renamed from gr-analog/python/qa_sig_source.py)5
-rwxr-xr-xgr-analog/python/analog/qa_simple_squelch.py (renamed from gr-analog/python/qa_simple_squelch.py)4
-rw-r--r--gr-analog/python/analog/standard_squelch.py (renamed from gr-analog/python/standard_squelch.py)0
-rw-r--r--gr-analog/python/analog/wfm_rcv.py (renamed from gr-analog/python/wfm_rcv.py)0
-rw-r--r--gr-analog/python/analog/wfm_rcv_fmdet.py (renamed from gr-analog/python/wfm_rcv_fmdet.py)0
-rw-r--r--gr-analog/python/analog/wfm_rcv_pll.py (renamed from gr-analog/python/wfm_rcv_pll.py)0
-rw-r--r--gr-analog/python/analog/wfm_tx.py (renamed from gr-analog/python/wfm_tx.py)0
-rw-r--r--gr-blocks/CMakeLists.txt2
-rw-r--r--gr-blocks/python/blocks/CMakeLists.txt (renamed from gr-blocks/python/CMakeLists.txt)38
-rw-r--r--gr-blocks/python/blocks/__init__.py (renamed from gr-blocks/python/__init__.py)9
-rw-r--r--gr-blocks/python/blocks/parse_file_metadata.py (renamed from gr-blocks/python/parse_file_metadata.py)0
-rwxr-xr-xgr-blocks/python/blocks/qa_add_mult_div_sub.py (renamed from gr-blocks/python/qa_add_mult_div_sub.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_add_mult_v.py (renamed from gr-blocks/python/qa_add_mult_v.py)3
-rw-r--r--gr-blocks/python/blocks/qa_argmax.py (renamed from gr-blocks/python/qa_argmax.py)4
-rwxr-xr-xgr-blocks/python/blocks/qa_bin_statistics.py (renamed from gr-blocks/python/qa_bin_statistics.py)4
-rwxr-xr-xgr-blocks/python/blocks/qa_boolean_operators.py (renamed from gr-blocks/python/qa_boolean_operators.py)3
-rw-r--r--gr-blocks/python/blocks/qa_burst_tagger.py (renamed from gr-blocks/python/qa_burst_tagger.py)4
-rw-r--r--gr-blocks/python/blocks/qa_conjugate.py (renamed from gr-blocks/python/qa_conjugate.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_delay.py (renamed from gr-blocks/python/qa_delay.py)3
-rw-r--r--gr-blocks/python/blocks/qa_file_metadata.py (renamed from gr-blocks/python/qa_file_metadata.py)9
-rwxr-xr-xgr-blocks/python/blocks/qa_integrate.py (renamed from gr-blocks/python/qa_integrate.py)4
-rwxr-xr-xgr-blocks/python/blocks/qa_interleave.py (renamed from gr-blocks/python/qa_interleave.py)4
-rwxr-xr-xgr-blocks/python/blocks/qa_keep_m_in_n.py (renamed from gr-blocks/python/qa_keep_m_in_n.py)4
-rwxr-xr-xgr-blocks/python/blocks/qa_keep_one_in_n.py (renamed from gr-blocks/python/qa_keep_one_in_n.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_max.py (renamed from gr-blocks/python/qa_max.py)4
-rwxr-xr-xgr-blocks/python/blocks/qa_message.py (renamed from gr-blocks/python/qa_message.py)6
-rw-r--r--gr-blocks/python/blocks/qa_moving_average.py (renamed from gr-blocks/python/qa_moving_average.py)4
-rw-r--r--gr-blocks/python/blocks/qa_multiply_conjugate.py (renamed from gr-blocks/python/qa_multiply_conjugate.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_mute.py (renamed from gr-blocks/python/qa_mute.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_nlog10.py (renamed from gr-blocks/python/qa_nlog10.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_pack_k_bits.py (renamed from gr-blocks/python/qa_pack_k_bits.py)4
-rwxr-xr-xgr-blocks/python/blocks/qa_packed_to_unpacked.py (renamed from gr-blocks/python/qa_packed_to_unpacked.py)4
-rwxr-xr-xgr-blocks/python/blocks/qa_patterned_interleaver.py (renamed from gr-blocks/python/qa_patterned_interleaver.py)7
-rwxr-xr-xgr-blocks/python/blocks/qa_pdu.py (renamed from gr-blocks/python/qa_pdu.py)6
-rw-r--r--gr-blocks/python/blocks/qa_peak_detector.py (renamed from gr-blocks/python/qa_peak_detector.py)3
-rw-r--r--gr-blocks/python/blocks/qa_peak_detector2.py (renamed from gr-blocks/python/qa_peak_detector2.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_pipe_fittings.py (renamed from gr-blocks/python/qa_pipe_fittings.py)3
-rw-r--r--gr-blocks/python/blocks/qa_probe_signal.py (renamed from gr-blocks/python/qa_probe_signal.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_regenerate.py (renamed from gr-blocks/python/qa_regenerate.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_repeat.py (renamed from gr-blocks/python/qa_repeat.py)4
-rw-r--r--gr-blocks/python/blocks/qa_rms.py (renamed from gr-blocks/python/qa_rms.py)4
-rw-r--r--gr-blocks/python/blocks/qa_sample_and_hold.py (renamed from gr-blocks/python/qa_sample_and_hold.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_stream_mux.py (renamed from gr-blocks/python/qa_stream_mux.py)4
-rwxr-xr-xgr-blocks/python/blocks/qa_stretch.py (renamed from gr-blocks/python/qa_stretch.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_tag_debug.py (renamed from gr-blocks/python/qa_tag_debug.py)3
-rw-r--r--gr-blocks/python/blocks/qa_threshold.py (renamed from gr-blocks/python/qa_threshold.py)3
-rwxr-xr-xgr-blocks/python/blocks/qa_throttle.py (renamed from gr-blocks/python/qa_throttle.py)3
-rw-r--r--gr-blocks/python/blocks/qa_transcendental.py (renamed from gr-blocks/python/qa_transcendental.py)4
-rwxr-xr-xgr-blocks/python/blocks/qa_type_conversions.py (renamed from gr-blocks/python/qa_type_conversions.py)4
-rwxr-xr-xgr-blocks/python/blocks/qa_unpack_k_bits.py (renamed from gr-blocks/python/qa_unpack_k_bits.py)4
-rw-r--r--gr-blocks/python/blocks/stream_to_vector_decimator.py (renamed from gr-blocks/python/stream_to_vector_decimator.py)0
-rw-r--r--gr-comedi/CMakeLists.txt2
-rw-r--r--gr-comedi/python/comedi/CMakeLists.txt (renamed from gr-comedi/python/CMakeLists.txt)20
-rw-r--r--gr-comedi/python/comedi/__init__.py (renamed from gr-comedi/python/__init__.py)8
-rwxr-xr-xgr-comedi/python/comedi/qa_comedi.py (renamed from gr-comedi/python/qa_comedi.py)3
-rw-r--r--gr-digital/CMakeLists.txt2
-rw-r--r--gr-digital/python/digital/CMakeLists.txt (renamed from gr-digital/python/CMakeLists.txt)29
-rw-r--r--gr-digital/python/digital/__init__.py (renamed from gr-digital/python/__init__.py)9
-rw-r--r--gr-digital/python/digital/bpsk.py (renamed from gr-digital/python/bpsk.py)0
-rw-r--r--gr-digital/python/digital/cpm.py (renamed from gr-digital/python/cpm.py)0
-rw-r--r--gr-digital/python/digital/crc.py (renamed from gr-digital/python/crc.py)0
-rw-r--r--gr-digital/python/digital/digital_voice.py.real (renamed from gr-digital/python/digital_voice.py.real)0
-rw-r--r--gr-digital/python/digital/generic_mod_demod.py (renamed from gr-digital/python/generic_mod_demod.py)0
-rw-r--r--gr-digital/python/digital/gfsk.py (renamed from gr-digital/python/gfsk.py)0
-rw-r--r--gr-digital/python/digital/gmsk.py (renamed from gr-digital/python/gmsk.py)14
-rw-r--r--gr-digital/python/digital/modulation_utils.py (renamed from gr-digital/python/modulation_utils.py)0
-rw-r--r--gr-digital/python/digital/ofdm.py (renamed from gr-digital/python/ofdm.py)0
-rw-r--r--gr-digital/python/digital/ofdm_packet_utils.py (renamed from gr-digital/python/ofdm_packet_utils.py)0
-rw-r--r--gr-digital/python/digital/ofdm_receiver.py (renamed from gr-digital/python/ofdm_receiver.py)0
-rw-r--r--gr-digital/python/digital/ofdm_sync_fixed.py (renamed from gr-digital/python/ofdm_sync_fixed.py)0
-rw-r--r--gr-digital/python/digital/ofdm_sync_ml.py (renamed from gr-digital/python/ofdm_sync_ml.py)0
-rw-r--r--gr-digital/python/digital/ofdm_sync_pn.py (renamed from gr-digital/python/ofdm_sync_pn.py)0
-rw-r--r--gr-digital/python/digital/ofdm_sync_pnac.py (renamed from gr-digital/python/ofdm_sync_pnac.py)0
-rw-r--r--gr-digital/python/digital/ofdm_txrx.py (renamed from gr-digital/python/ofdm_txrx.py)0
-rw-r--r--gr-digital/python/digital/packet_utils.py (renamed from gr-digital/python/packet_utils.py)0
-rw-r--r--gr-digital/python/digital/pkt.py (renamed from gr-digital/python/pkt.py)0
-rw-r--r--gr-digital/python/digital/psk.py (renamed from gr-digital/python/psk.py)0
-rwxr-xr-xgr-digital/python/digital/qa_binary_slicer_fb.py (renamed from gr-digital/python/qa_binary_slicer_fb.py)7
-rwxr-xr-xgr-digital/python/digital/qa_chunks_to_symbols.py (renamed from gr-digital/python/qa_chunks_to_symbols.py)4
-rwxr-xr-xgr-digital/python/digital/qa_clock_recovery_mm.py (renamed from gr-digital/python/qa_clock_recovery_mm.py)8
-rwxr-xr-xgr-digital/python/digital/qa_cma_equalizer.py (renamed from gr-digital/python/qa_cma_equalizer.py)4
-rwxr-xr-xgr-digital/python/digital/qa_constellation.py (renamed from gr-digital/python/qa_constellation.py)12
-rwxr-xr-xgr-digital/python/digital/qa_constellation_decoder_cb.py (renamed from gr-digital/python/qa_constellation_decoder_cb.py)5
-rwxr-xr-xgr-digital/python/digital/qa_constellation_receiver.py (renamed from gr-digital/python/qa_constellation_receiver.py)14
-rwxr-xr-xgr-digital/python/digital/qa_correlate_access_code.py (renamed from gr-digital/python/qa_correlate_access_code.py)5
-rwxr-xr-xgr-digital/python/digital/qa_costas_loop_cc.py (renamed from gr-digital/python/qa_costas_loop_cc.py)10
-rwxr-xr-xgr-digital/python/digital/qa_cpm.py (renamed from gr-digital/python/qa_cpm.py)6
-rwxr-xr-xgr-digital/python/digital/qa_crc32.py (renamed from gr-digital/python/qa_crc32.py)7
-rwxr-xr-xgr-digital/python/digital/qa_crc32_bb.py (renamed from gr-digital/python/qa_crc32_bb.py)4
-rwxr-xr-xgr-digital/python/digital/qa_diff_encoder.py (renamed from gr-digital/python/qa_diff_encoder.py)6
-rwxr-xr-xgr-digital/python/digital/qa_diff_phasor_cc.py (renamed from gr-digital/python/qa_diff_phasor_cc.py)5
-rwxr-xr-xgr-digital/python/digital/qa_digital.py (renamed from gr-digital/python/qa_digital.py)3
-rwxr-xr-xgr-digital/python/digital/qa_fll_band_edge.py (renamed from gr-digital/python/qa_fll_band_edge.py)10
-rwxr-xr-xgr-digital/python/digital/qa_framer_sink.py (renamed from gr-digital/python/qa_framer_sink.py)4
-rwxr-xr-xgr-digital/python/digital/qa_glfsr_source.py (renamed from gr-digital/python/qa_glfsr_source.py)4
-rwxr-xr-xgr-digital/python/digital/qa_header_payload_demux.py (renamed from gr-digital/python/qa_header_payload_demux.py)7
-rwxr-xr-xgr-digital/python/digital/qa_lfsr.py (renamed from gr-digital/python/qa_lfsr.py)3
-rwxr-xr-xgr-digital/python/digital/qa_lms_equalizer.py (renamed from gr-digital/python/qa_lms_equalizer.py)4
-rwxr-xr-xgr-digital/python/digital/qa_map.py (renamed from gr-digital/python/qa_map.py)4
-rwxr-xr-xgr-digital/python/digital/qa_mpsk_receiver.py (renamed from gr-digital/python/qa_mpsk_receiver.py)10
-rwxr-xr-xgr-digital/python/digital/qa_mpsk_snr_est.py (renamed from gr-digital/python/qa_mpsk_snr_est.py)6
-rwxr-xr-xgr-digital/python/digital/qa_ofdm_carrier_allocator_cvc.py (renamed from gr-digital/python/qa_ofdm_carrier_allocator_cvc.py)4
-rwxr-xr-xgr-digital/python/digital/qa_ofdm_chanest_vcvc.py (renamed from gr-digital/python/qa_ofdm_chanest_vcvc.py)10
-rwxr-xr-xgr-digital/python/digital/qa_ofdm_cyclic_prefixer.py (renamed from gr-digital/python/qa_ofdm_cyclic_prefixer.py)4
-rwxr-xr-xgr-digital/python/digital/qa_ofdm_frame_equalizer_vcvc.py (renamed from gr-digital/python/qa_ofdm_frame_equalizer_vcvc.py)5
-rwxr-xr-xgr-digital/python/digital/qa_ofdm_insert_preamble.py (renamed from gr-digital/python/qa_ofdm_insert_preamble.py)5
-rwxr-xr-xgr-digital/python/digital/qa_ofdm_serializer_vcc.py (renamed from gr-digital/python/qa_ofdm_serializer_vcc.py)7
-rwxr-xr-xgr-digital/python/digital/qa_ofdm_sync_sc_cfb.py (renamed from gr-digital/python/qa_ofdm_sync_sc_cfb.py)20
-rwxr-xr-xgr-digital/python/digital/qa_ofdm_txrx.py (renamed from gr-digital/python/qa_ofdm_txrx.py)13
-rwxr-xr-xgr-digital/python/digital/qa_packet_headergenerator_bb.py (renamed from gr-digital/python/qa_packet_headergenerator_bb.py)4
-rwxr-xr-xgr-digital/python/digital/qa_packet_headerparser_b.py (renamed from gr-digital/python/qa_packet_headerparser_b.py)7
-rwxr-xr-xgr-digital/python/digital/qa_pfb_clock_sync.py (renamed from gr-digital/python/qa_pfb_clock_sync.py)9
-rwxr-xr-xgr-digital/python/digital/qa_pn_correlator_cc.py (renamed from gr-digital/python/qa_pn_correlator_cc.py)4
-rwxr-xr-xgr-digital/python/digital/qa_probe_density.py (renamed from gr-digital/python/qa_probe_density.py)4
-rwxr-xr-xgr-digital/python/digital/qa_scrambler.py (renamed from gr-digital/python/qa_scrambler.py)4
-rwxr-xr-xgr-digital/python/digital/qa_simple_correlator.py (renamed from gr-digital/python/qa_simple_correlator.py)5
-rwxr-xr-xgr-digital/python/digital/qa_simple_framer.py (renamed from gr-digital/python/qa_simple_framer.py)5
-rw-r--r--gr-digital/python/digital/qam.py (renamed from gr-digital/python/qam.py)0
-rw-r--r--gr-digital/python/digital/qamlike.py (renamed from gr-digital/python/qamlike.py)0
-rw-r--r--gr-digital/python/digital/qpsk.py (renamed from gr-digital/python/qpsk.py)0
-rw-r--r--gr-digital/python/digital/utils/__init__.py (renamed from gr-digital/python/utils/__init__.py)0
-rw-r--r--gr-digital/python/digital/utils/alignment.py (renamed from gr-digital/python/utils/alignment.py)0
-rw-r--r--gr-digital/python/digital/utils/gray_code.py (renamed from gr-digital/python/utils/gray_code.py)0
-rw-r--r--gr-digital/python/digital/utils/mod_codes.py (renamed from gr-digital/python/utils/mod_codes.py)0
-rw-r--r--gr-digital/python/digital/utils/tagged_streams.py (renamed from gr-digital/python/utils/tagged_streams.py)0
-rw-r--r--gr-fcd/CMakeLists.txt2
-rw-r--r--gr-fcd/python/fcd/CMakeLists.txt (renamed from gr-fcd/python/CMakeLists.txt)19
-rw-r--r--gr-fcd/python/fcd/__init__.py (renamed from gr-fcd/python/__init__.py)8
-rwxr-xr-xgr-fcd/python/fcd/qa_fcd.py (renamed from gr-fcd/python/qa_fcd.py)3
-rw-r--r--gr-fcd/python/fcd/run_tests.in (renamed from gr-fcd/python/run_tests.in)0
-rw-r--r--gr-fft/CMakeLists.txt2
-rw-r--r--gr-fft/python/fft/CMakeLists.txt (renamed from gr-fft/python/CMakeLists.txt)23
-rw-r--r--gr-fft/python/fft/__init__.py (renamed from gr-fft/python/__init__.py)9
-rw-r--r--gr-fft/python/fft/logpwrfft.py (renamed from gr-fft/python/logpwrfft.py)0
-rwxr-xr-xgr-fft/python/fft/qa_fft.py (renamed from gr-fft/python/qa_fft.py)5
-rwxr-xr-xgr-fft/python/fft/qa_goertzel.py (renamed from gr-fft/python/qa_goertzel.py)5
-rw-r--r--gr-fft/python/fft/window.py (renamed from gr-fft/python/window.py)0
-rw-r--r--gr-filter/CMakeLists.txt6
-rw-r--r--gr-filter/python/filter/CMakeLists.txt (renamed from gr-filter/python/CMakeLists.txt)25
-rw-r--r--gr-filter/python/filter/__init__.py (renamed from gr-filter/python/__init__.py)8
-rw-r--r--gr-filter/python/filter/design/CMakeLists.txt (renamed from gr-filter/python/design/CMakeLists.txt)0
-rw-r--r--gr-filter/python/filter/design/api_object.py (renamed from gr-filter/python/design/api_object.py)0
-rw-r--r--gr-filter/python/filter/design/filter_design.py (renamed from gr-filter/python/design/filter_design.py)0
-rw-r--r--gr-filter/python/filter/design/fir_design.py (renamed from gr-filter/python/design/fir_design.py)0
-rw-r--r--gr-filter/python/filter/filterbank.py (renamed from gr-filter/python/filterbank.py)0
-rw-r--r--gr-filter/python/filter/gui/CMakeLists.txt (renamed from gr-filter/python/gui/CMakeLists.txt)0
-rw-r--r--gr-filter/python/filter/gui/bandgraphicsview.py (renamed from gr-filter/python/gui/bandgraphicsview.py)0
-rw-r--r--gr-filter/python/filter/gui/banditems.py (renamed from gr-filter/python/gui/banditems.py)0
-rw-r--r--gr-filter/python/filter/gui/icons.qrc (renamed from gr-filter/python/gui/icons.qrc)0
-rw-r--r--gr-filter/python/filter/gui/icons/add_pole.svg (renamed from gr-filter/python/gui/icons/add_pole.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/add_zero.svg (renamed from gr-filter/python/gui/icons/add_zero.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/conjugate.svg (renamed from gr-filter/python/gui/icons/conjugate.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/filtr_taps.svg (renamed from gr-filter/python/gui/icons/filtr_taps.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/group_delay.svg (renamed from gr-filter/python/gui/icons/group_delay.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/impulse.svg (renamed from gr-filter/python/gui/icons/impulse.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/impulse_response.svg (renamed from gr-filter/python/gui/icons/impulse_response.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/mag_response.svg (renamed from gr-filter/python/gui/icons/mag_response.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/overlay.svg (renamed from gr-filter/python/gui/icons/overlay.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/phase_delay.svg (renamed from gr-filter/python/gui/icons/phase_delay.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/phase_response.svg (renamed from gr-filter/python/gui/icons/phase_response.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/remove_red.svg (renamed from gr-filter/python/gui/icons/remove_red.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons/step_response.svg (renamed from gr-filter/python/gui/icons/step_response.svg)0
-rw-r--r--gr-filter/python/filter/gui/icons_rc.py (renamed from gr-filter/python/gui/icons_rc.py)0
-rw-r--r--gr-filter/python/filter/gui/idealbanditems.py (renamed from gr-filter/python/gui/idealbanditems.py)0
-rw-r--r--gr-filter/python/filter/gui/polezero_plot.py (renamed from gr-filter/python/gui/polezero_plot.py)0
-rw-r--r--gr-filter/python/filter/gui/pyqt_filter_stacked.py (renamed from gr-filter/python/gui/pyqt_filter_stacked.py)0
-rw-r--r--gr-filter/python/filter/gui/pyqt_filter_stacked.ui (renamed from gr-filter/python/gui/pyqt_filter_stacked.ui)0
-rw-r--r--gr-filter/python/filter/optfir.py (renamed from gr-filter/python/optfir.py)0
-rw-r--r--gr-filter/python/filter/pfb.py (renamed from gr-filter/python/pfb.py)0
-rwxr-xr-xgr-filter/python/filter/qa_adaptive_fir_filter.py (renamed from gr-filter/python/qa_adaptive_fir_filter.py)4
-rwxr-xr-xgr-filter/python/filter/qa_dc_blocker.py (renamed from gr-filter/python/qa_dc_blocker.py)4
-rwxr-xr-xgr-filter/python/filter/qa_fft_filter.py (renamed from gr-filter/python/qa_fft_filter.py)5
-rwxr-xr-xgr-filter/python/filter/qa_filter_delay_fc.py (renamed from gr-filter/python/qa_filter_delay_fc.py)5
-rwxr-xr-xgr-filter/python/filter/qa_fir_filter.py (renamed from gr-filter/python/qa_fir_filter.py)4
-rwxr-xr-xgr-filter/python/filter/qa_firdes.py (renamed from gr-filter/python/qa_firdes.py)3
-rwxr-xr-xgr-filter/python/filter/qa_fractional_interpolator.py (renamed from gr-filter/python/qa_fractional_interpolator.py)5
-rwxr-xr-xgr-filter/python/filter/qa_freq_xlating_fir_filter.py (renamed from gr-filter/python/qa_freq_xlating_fir_filter.py)5
-rwxr-xr-xgr-filter/python/filter/qa_hilbert.py (renamed from gr-filter/python/qa_hilbert.py)4
-rwxr-xr-xgr-filter/python/filter/qa_iir_filter.py (renamed from gr-filter/python/qa_iir_filter.py)4
-rwxr-xr-xgr-filter/python/filter/qa_interp_fir_filter.py (renamed from gr-filter/python/qa_interp_fir_filter.py)5
-rwxr-xr-xgr-filter/python/filter/qa_pfb_arb_resampler.py (renamed from gr-filter/python/qa_pfb_arb_resampler.py)5
-rwxr-xr-xgr-filter/python/filter/qa_pfb_channelizer.py (renamed from gr-filter/python/qa_pfb_channelizer.py)4
-rwxr-xr-xgr-filter/python/filter/qa_pfb_decimator.py (renamed from gr-filter/python/qa_pfb_decimator.py)4
-rwxr-xr-xgr-filter/python/filter/qa_pfb_interpolator.py (renamed from gr-filter/python/qa_pfb_interpolator.py)5
-rwxr-xr-xgr-filter/python/filter/qa_pfb_synthesizer.py (renamed from gr-filter/python/qa_pfb_synthesizer.py)5
-rwxr-xr-xgr-filter/python/filter/qa_pm_remez.py (renamed from gr-filter/python/qa_pm_remez.py)3
-rwxr-xr-xgr-filter/python/filter/qa_rational_resampler.py (renamed from gr-filter/python/qa_rational_resampler.py)4
-rwxr-xr-xgr-filter/python/filter/qa_single_pole_iir.py (renamed from gr-filter/python/qa_single_pole_iir.py)4
-rw-r--r--gr-filter/python/filter/rational_resampler.py (renamed from gr-filter/python/rational_resampler.py)0
-rw-r--r--gr-noaa/CMakeLists.txt2
-rw-r--r--gr-noaa/python/noaa/CMakeLists.txt (renamed from gr-noaa/python/CMakeLists.txt)20
-rw-r--r--gr-noaa/python/noaa/__init__.py (renamed from gr-noaa/python/__init__.py)9
-rwxr-xr-xgr-noaa/python/noaa/qa_noaa.py (renamed from gr-noaa/python/qa_noaa.py)3
-rw-r--r--gr-pager/CMakeLists.txt2
-rw-r--r--gr-pager/python/pager/CMakeLists.txt (renamed from gr-pager/python/CMakeLists.txt)19
-rw-r--r--gr-pager/python/pager/__init__.py (renamed from gr-pager/python/__init__.py)9
-rw-r--r--gr-pager/python/pager/flex_demod.py (renamed from gr-pager/python/flex_demod.py)0
-rw-r--r--gr-pager/python/pager/pager_utils.py (renamed from gr-pager/python/pager_utils.py)0
-rwxr-xr-xgr-pager/python/pager/qa_pager.py (renamed from gr-pager/python/qa_pager.py)3
-rw-r--r--gr-qtgui/CMakeLists.txt2
-rw-r--r--gr-qtgui/python/qtgui/CMakeLists.txt (renamed from gr-qtgui/python/CMakeLists.txt)21
-rw-r--r--gr-qtgui/python/qtgui/__init__.py (renamed from gr-qtgui/python/__init__.py)9
-rwxr-xr-xgr-qtgui/python/qtgui/qa_qtgui.py (renamed from gr-qtgui/python/qa_qtgui.py)3
-rw-r--r--gr-trellis/CMakeLists.txt2
-rw-r--r--gr-trellis/python/CMakeLists.txt57
-rw-r--r--gr-trellis/python/trellis/CMakeLists.txt50
-rw-r--r--gr-trellis/python/trellis/__init__.py (renamed from gr-trellis/python/__init__.py)8
-rw-r--r--gr-trellis/python/trellis/awgn1o2_4.fsm (renamed from gr-trellis/python/awgn1o2_4.fsm)0
-rwxr-xr-xgr-trellis/python/trellis/qa_trellis.py (renamed from gr-trellis/python/qa_trellis.py)7
-rw-r--r--gr-video-sdl/CMakeLists.txt2
-rw-r--r--gr-video-sdl/python/video_sdl/CMakeLists.txt (renamed from gr-video-sdl/python/CMakeLists.txt)19
-rw-r--r--gr-video-sdl/python/video_sdl/__init__.py (renamed from gr-video-sdl/python/__init__.py)8
-rwxr-xr-xgr-video-sdl/python/video_sdl/qa_video_sdl.py (renamed from gr-video-sdl/python/qa_video_sdl.py)3
-rw-r--r--gr-vocoder/CMakeLists.txt2
-rw-r--r--gr-vocoder/python/vocoder/CMakeLists.txt (renamed from gr-vocoder/python/CMakeLists.txt)25
-rw-r--r--gr-vocoder/python/vocoder/__init__.py (renamed from gr-vocoder/python/__init__.py)9
-rw-r--r--gr-vocoder/python/vocoder/cvsd.py (renamed from gr-vocoder/python/cvsd.py)12
-rwxr-xr-xgr-vocoder/python/vocoder/qa_alaw_vocoder.py (renamed from gr-vocoder/python/qa_alaw_vocoder.py)4
-rwxr-xr-xgr-vocoder/python/vocoder/qa_codec2_vocoder.py (renamed from gr-vocoder/python/qa_codec2_vocoder.py)4
-rwxr-xr-xgr-vocoder/python/vocoder/qa_cvsd_vocoder.py (renamed from gr-vocoder/python/qa_cvsd_vocoder.py)7
-rwxr-xr-xgr-vocoder/python/vocoder/qa_g721_vocoder.py (renamed from gr-vocoder/python/qa_g721_vocoder.py)4
-rwxr-xr-xgr-vocoder/python/vocoder/qa_g723_24_vocoder.py (renamed from gr-vocoder/python/qa_g723_24_vocoder.py)4
-rwxr-xr-xgr-vocoder/python/vocoder/qa_g723_40_vocoder.py (renamed from gr-vocoder/python/qa_g723_40_vocoder.py)4
-rwxr-xr-xgr-vocoder/python/vocoder/qa_gsm_full_rate.py (renamed from gr-vocoder/python/qa_gsm_full_rate.py)4
-rwxr-xr-xgr-vocoder/python/vocoder/qa_ulaw_vocoder.py (renamed from gr-vocoder/python/qa_ulaw_vocoder.py)4
-rw-r--r--gr-wavelet/CMakeLists.txt2
-rw-r--r--gr-wavelet/python/wavelet/CMakeLists.txt (renamed from gr-wavelet/python/CMakeLists.txt)23
-rw-r--r--gr-wavelet/python/wavelet/__init__.py (renamed from gr-wavelet/python/__init__.py)9
-rwxr-xr-xgr-wavelet/python/wavelet/qa_classify.py (renamed from gr-wavelet/python/qa_classify.py)13
-rw-r--r--gr-wxgui/CMakeLists.txt2
-rw-r--r--gr-wxgui/python/wxgui/CMakeLists.txt (renamed from gr-wxgui/python/CMakeLists.txt)0
-rw-r--r--gr-wxgui/python/wxgui/__init__.py (renamed from gr-wxgui/python/__init__.py)0
-rw-r--r--gr-wxgui/python/wxgui/common.py (renamed from gr-wxgui/python/common.py)0
-rw-r--r--gr-wxgui/python/wxgui/const_window.py (renamed from gr-wxgui/python/const_window.py)0
-rw-r--r--gr-wxgui/python/wxgui/constants.py (renamed from gr-wxgui/python/constants.py)0
-rw-r--r--gr-wxgui/python/wxgui/constsink_gl.py (renamed from gr-wxgui/python/constsink_gl.py)0
-rw-r--r--gr-wxgui/python/wxgui/fft_window.py (renamed from gr-wxgui/python/fft_window.py)0
-rw-r--r--gr-wxgui/python/wxgui/fftsink2.py (renamed from gr-wxgui/python/fftsink2.py)0
-rw-r--r--gr-wxgui/python/wxgui/fftsink_gl.py (renamed from gr-wxgui/python/fftsink_gl.py)0
-rw-r--r--gr-wxgui/python/wxgui/fftsink_nongl.py (renamed from gr-wxgui/python/fftsink_nongl.py)0
-rw-r--r--gr-wxgui/python/wxgui/form.py (renamed from gr-wxgui/python/form.py)0
-rw-r--r--gr-wxgui/python/wxgui/forms/__init__.py (renamed from gr-wxgui/python/forms/__init__.py)0
-rw-r--r--gr-wxgui/python/wxgui/forms/converters.py (renamed from gr-wxgui/python/forms/converters.py)0
-rw-r--r--gr-wxgui/python/wxgui/forms/forms.py (renamed from gr-wxgui/python/forms/forms.py)0
-rw-r--r--gr-wxgui/python/wxgui/gui.py (renamed from gr-wxgui/python/gui.py)0
-rw-r--r--gr-wxgui/python/wxgui/histo_window.py (renamed from gr-wxgui/python/histo_window.py)0
-rw-r--r--gr-wxgui/python/wxgui/histosink_gl.py (renamed from gr-wxgui/python/histosink_gl.py)0
-rw-r--r--gr-wxgui/python/wxgui/number_window.py (renamed from gr-wxgui/python/number_window.py)0
-rw-r--r--gr-wxgui/python/wxgui/numbersink2.py (renamed from gr-wxgui/python/numbersink2.py)0
-rw-r--r--gr-wxgui/python/wxgui/plot.py (renamed from gr-wxgui/python/plot.py)0
-rw-r--r--gr-wxgui/python/wxgui/plotter/__init__.py (renamed from gr-wxgui/python/plotter/__init__.py)0
-rw-r--r--gr-wxgui/python/wxgui/plotter/bar_plotter.py (renamed from gr-wxgui/python/plotter/bar_plotter.py)0
-rw-r--r--gr-wxgui/python/wxgui/plotter/channel_plotter.py (renamed from gr-wxgui/python/plotter/channel_plotter.py)0
-rw-r--r--gr-wxgui/python/wxgui/plotter/common.py (renamed from gr-wxgui/python/plotter/common.py)0
-rw-r--r--gr-wxgui/python/wxgui/plotter/gltext.py (renamed from gr-wxgui/python/plotter/gltext.py)0
-rw-r--r--gr-wxgui/python/wxgui/plotter/grid_plotter_base.py (renamed from gr-wxgui/python/plotter/grid_plotter_base.py)0
-rw-r--r--gr-wxgui/python/wxgui/plotter/plotter_base.py (renamed from gr-wxgui/python/plotter/plotter_base.py)0
-rw-r--r--gr-wxgui/python/wxgui/plotter/waterfall_plotter.py (renamed from gr-wxgui/python/plotter/waterfall_plotter.py)0
-rw-r--r--gr-wxgui/python/wxgui/powermate.py (renamed from gr-wxgui/python/powermate.py)0
-rw-r--r--gr-wxgui/python/wxgui/pubsub.py (renamed from gr-wxgui/python/pubsub.py)0
-rw-r--r--gr-wxgui/python/wxgui/scope_window.py (renamed from gr-wxgui/python/scope_window.py)0
-rw-r--r--gr-wxgui/python/wxgui/scopesink2.py (renamed from gr-wxgui/python/scopesink2.py)0
-rw-r--r--gr-wxgui/python/wxgui/scopesink_gl.py (renamed from gr-wxgui/python/scopesink_gl.py)0
-rw-r--r--gr-wxgui/python/wxgui/scopesink_nongl.py (renamed from gr-wxgui/python/scopesink_nongl.py)0
-rw-r--r--gr-wxgui/python/wxgui/slider.py (renamed from gr-wxgui/python/slider.py)0
-rw-r--r--gr-wxgui/python/wxgui/stdgui2.py (renamed from gr-wxgui/python/stdgui2.py)0
-rw-r--r--gr-wxgui/python/wxgui/termsink.py (renamed from gr-wxgui/python/termsink.py)0
-rw-r--r--gr-wxgui/python/wxgui/waterfall_window.py (renamed from gr-wxgui/python/waterfall_window.py)0
-rw-r--r--gr-wxgui/python/wxgui/waterfallsink2.py (renamed from gr-wxgui/python/waterfallsink2.py)0
-rw-r--r--gr-wxgui/python/wxgui/waterfallsink_gl.py (renamed from gr-wxgui/python/waterfallsink_gl.py)0
-rw-r--r--gr-wxgui/python/wxgui/waterfallsink_nongl.py (renamed from gr-wxgui/python/waterfallsink_nongl.py)0
-rw-r--r--gruel/src/python/gruel/CMakeLists.txt46
302 files changed, 660 insertions, 716 deletions
diff --git a/gnuradio-runtime/python/gnuradio/__init__.py b/gnuradio-runtime/python/gnuradio/__init__.py
index d55dac79db..c0274656d1 100644
--- a/gnuradio-runtime/python/gnuradio/__init__.py
+++ b/gnuradio-runtime/python/gnuradio/__init__.py
@@ -10,3 +10,37 @@ GNU Radio is licensed under the GNU General Public License (GPL) version 3. All
# This file makes gnuradio a package
# The docstring will be associated with the top level of the package.
+
+import os
+
+# Check if the gnuradio package is installed or whether we're attempting to import it from
+# the build directory.
+path_ending = os.path.join('gnuradio-runtime', 'python', 'gnuradio', '__init__.py')
+path = os.path.abspath(__file__)
+if path.endswith('.pyc'):
+ path = path[:-1]
+
+if path.endswith(path_ending):
+ # We importing it from build directory.
+ build_path = os.path.join(path[:-len(path_ending)])
+
+ # Place these directories on __path__ so that their contents are
+ # part of the gnuradio package.
+ __path__.append(os.path.join(build_path, 'gr-utils', 'src', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-blocks', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-digital', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-filter', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-fft', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-analog', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-trellis', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-wavelet', 'python'))
+ #__path__.append(os.path.join(build_path, 'gr-audio', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-qtgui', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-wxgui', 'python'))
+ #__path__.append(os.path.join(build_path, 'gr-atsc', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-noaa', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-pager', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-video-sdl', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-vocoder', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-fcd', 'python'))
+ __path__.append(os.path.join(build_path, 'gr-comedi', 'python'))
diff --git a/gnuradio-runtime/python/gnuradio/gr/CMakeLists.txt b/gnuradio-runtime/python/gnuradio/gr/CMakeLists.txt
index 2be4d4a0f3..7f9c19500b 100644
--- a/gnuradio-runtime/python/gnuradio/gr/CMakeLists.txt
+++ b/gnuradio-runtime/python/gnuradio/gr/CMakeLists.txt
@@ -38,10 +38,16 @@ GR_PYTHON_INSTALL(FILES
# Handle the unit tests
########################################################################
if(ENABLE_TESTING)
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gnuradio-runtime/python/gnuradio/gr/__init__.py b/gnuradio-runtime/python/gnuradio/gr/__init__.py
index 20a8f97f63..94a5c9ec2b 100644
--- a/gnuradio-runtime/python/gnuradio/gr/__init__.py
+++ b/gnuradio-runtime/python/gnuradio/gr/__init__.py
@@ -28,7 +28,18 @@ Core contents.
# This is the main GNU Radio python module.
# We pull the swig output and the other modules into the gnuradio.gr namespace
-from runtime_swig import *
+# If gnuradio is installed then the swig output will be in this directory.
+# Otherwise it will reside in ../../../swig.
+
+import os
+
+try:
+ from runtime_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "..", "swig"))
+ from runtime_swig import *
+
from exceptions import *
from top_block import *
from hier_block2 import *
diff --git a/gnuradio-runtime/python/gnuradio/gr/tag_utils.py b/gnuradio-runtime/python/gnuradio/gr/tag_utils.py
index e35564c1eb..c25ed8d772 100644
--- a/gnuradio-runtime/python/gnuradio/gr/tag_utils.py
+++ b/gnuradio-runtime/python/gnuradio/gr/tag_utils.py
@@ -22,10 +22,7 @@
import pmt
-try:
- from gnuradio import gr
-except ImportError:
- from runtime_swig import tag_t
+from gnuradio import gr
class PythonTag(object):
" Python container for tags "
@@ -46,7 +43,7 @@ def tag_to_python(tag):
def tag_to_pmt(tag):
""" Convert a Python-readable object to a stream tag """
- newtag = tag_t()
+ newtag = gr.tag_t()
newtag.offset = tag.offset
newtag.key = pmt.to_python(tag.key)
newtag.value = pmt.from_python(tag.value)
diff --git a/gnuradio-runtime/python/pmt/__init__.py b/gnuradio-runtime/python/pmt/__init__.py
index 7900a6e7a8..00940e4cc1 100644
--- a/gnuradio-runtime/python/pmt/__init__.py
+++ b/gnuradio-runtime/python/pmt/__init__.py
@@ -39,7 +39,15 @@ bool, symbol (string), integer, real, complex, null, pair, list,
vector, dict, uniform_vector, any (boost::any cast)
'''
-from pmt_swig import *
+import os
+
+try:
+ from pmt_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from pmt_swig import *
+
from pmt_to_python import pmt_to_python as to_python
from pmt_to_python import python_to_pmt as to_pmt
diff --git a/gnuradio-runtime/python/pmt/qa_pmt.py b/gnuradio-runtime/python/pmt/qa_pmt.py
index 75e112678b..2a72fa6089 100755
--- a/gnuradio-runtime/python/pmt/qa_pmt.py
+++ b/gnuradio-runtime/python/pmt/qa_pmt.py
@@ -21,7 +21,7 @@
#
import unittest
-import pmt_swig as pmt
+import pmt
class test_pmt(unittest.TestCase):
diff --git a/gr-analog/CMakeLists.txt b/gr-analog/CMakeLists.txt
index 31e0adf2d1..44b0c739d2 100644
--- a/gr-analog/CMakeLists.txt
+++ b/gr-analog/CMakeLists.txt
@@ -92,7 +92,7 @@ add_subdirectory(lib)
add_subdirectory(doc)
if(ENABLE_PYTHON)
add_subdirectory(swig)
- add_subdirectory(python)
+ add_subdirectory(python/analog)
add_subdirectory(grc)
add_subdirectory(examples)
add_subdirectory(examples/tags)
diff --git a/gr-analog/python/CMakeLists.txt b/gr-analog/python/analog/CMakeLists.txt
index e4d1d0aa74..182fc24860 100644
--- a/gr-analog/python/CMakeLists.txt
+++ b/gr-analog/python/analog/CMakeLists.txt
@@ -44,21 +44,18 @@ GR_PYTHON_INSTALL(
########################################################################
if(ENABLE_TESTING)
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-analog/python
- ${CMAKE_BINARY_DIR}/gr-analog/swig
- ${CMAKE_BINARY_DIR}/gr-blocks/python
- ${CMAKE_BINARY_DIR}/gr-blocks/swig
- ${CMAKE_BINARY_DIR}/gr-filter/python
- ${CMAKE_BINARY_DIR}/gr-filter/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-analog gnuradio-filter gnuradio-fft)
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-analog/python/__init__.py b/gr-analog/python/analog/__init__.py
index a5ab5715d7..836d4ba935 100644
--- a/gr-analog/python/__init__.py
+++ b/gr-analog/python/analog/__init__.py
@@ -23,8 +23,14 @@ Blocks and utilities for analog modulation and demodulation.
'''
# The presence of this file turns this directory into a Python package
+import os
-from analog_swig import *
+try:
+ from analog_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from analog_swig import *
from am_demod import *
from fm_demod import *
diff --git a/gr-analog/python/am_demod.py b/gr-analog/python/analog/am_demod.py
index 3459e825f4..3459e825f4 100644
--- a/gr-analog/python/am_demod.py
+++ b/gr-analog/python/analog/am_demod.py
diff --git a/gr-analog/python/fm_demod.py b/gr-analog/python/analog/fm_demod.py
index 1976a076ca..1976a076ca 100644
--- a/gr-analog/python/fm_demod.py
+++ b/gr-analog/python/analog/fm_demod.py
diff --git a/gr-analog/python/fm_emph.py b/gr-analog/python/analog/fm_emph.py
index 2821f6e3cd..2821f6e3cd 100644
--- a/gr-analog/python/fm_emph.py
+++ b/gr-analog/python/analog/fm_emph.py
diff --git a/gr-analog/python/nbfm_rx.py b/gr-analog/python/analog/nbfm_rx.py
index b2c86db70f..b2c86db70f 100644
--- a/gr-analog/python/nbfm_rx.py
+++ b/gr-analog/python/analog/nbfm_rx.py
diff --git a/gr-analog/python/nbfm_tx.py b/gr-analog/python/analog/nbfm_tx.py
index 62b56bae52..62b56bae52 100644
--- a/gr-analog/python/nbfm_tx.py
+++ b/gr-analog/python/analog/nbfm_tx.py
diff --git a/gr-analog/python/qa_agc.py b/gr-analog/python/analog/qa_agc.py
index 0d8a7bfb5d..f274b04e7e 100755
--- a/gr-analog/python/qa_agc.py
+++ b/gr-analog/python/analog/qa_agc.py
@@ -20,10 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
-import math
+from gnuradio import gr, gr_unittest, analog, blocks
class test_agc(gr_unittest.TestCase):
@@ -33,7 +30,6 @@ class test_agc(gr_unittest.TestCase):
def tearDown(self):
self.tb = None
-
def test_001_sets(self):
agc = analog.agc_cc(1e-3, 1, 1, 1000)
diff --git a/gr-analog/python/qa_cpfsk.py b/gr-analog/python/analog/qa_cpfsk.py
index 7998d8079d..a33a6e6092 100755
--- a/gr-analog/python/qa_cpfsk.py
+++ b/gr-analog/python/analog/qa_cpfsk.py
@@ -20,11 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
import math
+from gnuradio import gr, gr_unittest, analog, blocks
+
class test_cpfsk_bc(gr_unittest.TestCase):
def setUp(self):
diff --git a/gr-analog/python/qa_ctcss_squelch.py b/gr-analog/python/analog/qa_ctcss_squelch.py
index 622cca234f..f5cfcbf976 100755
--- a/gr-analog/python/qa_ctcss_squelch.py
+++ b/gr-analog/python/analog/qa_ctcss_squelch.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, analog, blocks
class test_ctcss_squelch(gr_unittest.TestCase):
diff --git a/gr-analog/python/qa_dpll.py b/gr-analog/python/analog/qa_dpll.py
index 98ddf83eff..44b1486035 100755
--- a/gr-analog/python/qa_dpll.py
+++ b/gr-analog/python/analog/qa_dpll.py
@@ -20,10 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
-import math
+from gnuradio import gr, gr_unittest, analog, blocks
class test_dpll_bb(gr_unittest.TestCase):
diff --git a/gr-analog/python/qa_fastnoise.py b/gr-analog/python/analog/qa_fastnoise.py
index 040cf47522..91e1cb87b7 100644
--- a/gr-analog/python/qa_fastnoise.py
+++ b/gr-analog/python/analog/qa_fastnoise.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
+from gnuradio import gr, gr_unittest, analog
class test_fastnoise_source(gr_unittest.TestCase):
diff --git a/gr-analog/python/qa_fmdet.py b/gr-analog/python/analog/qa_fmdet.py
index 6c99b08803..a9c88c3b95 100755
--- a/gr-analog/python/qa_fmdet.py
+++ b/gr-analog/python/analog/qa_fmdet.py
@@ -20,10 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
-import math
+from gnuradio import gr, gr_unittest, analog, blocks
class test_fmdet_cf(gr_unittest.TestCase):
diff --git a/gr-analog/python/qa_frequency_modulator.py b/gr-analog/python/analog/qa_frequency_modulator.py
index 7d6cff3fea..0f5c45b11a 100755
--- a/gr-analog/python/qa_frequency_modulator.py
+++ b/gr-analog/python/analog/qa_frequency_modulator.py
@@ -20,11 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
import math
+from gnuradio import gr, gr_unittest, analog, blocks
+
def sincos(x):
return math.cos(x) + math.sin(x) * 1j
diff --git a/gr-analog/python/qa_noise.py b/gr-analog/python/analog/qa_noise.py
index dd94fc231f..5576773f23 100755
--- a/gr-analog/python/qa_noise.py
+++ b/gr-analog/python/analog/qa_noise.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
+from gnuradio import gr, gr_unittest, analog
class test_noise_source(gr_unittest.TestCase):
diff --git a/gr-analog/python/qa_phase_modulator.py b/gr-analog/python/analog/qa_phase_modulator.py
index 81334177db..05fe2127c0 100755
--- a/gr-analog/python/qa_phase_modulator.py
+++ b/gr-analog/python/analog/qa_phase_modulator.py
@@ -20,11 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
import math
+from gnuradio import gr, gr_unittest, analog, blocks
+
def sincos(x):
return math.cos(x) + math.sin(x) * 1j
diff --git a/gr-analog/python/qa_pll_carriertracking.py b/gr-analog/python/analog/qa_pll_carriertracking.py
index 2a6bb9f0b3..d05e49641a 100755
--- a/gr-analog/python/qa_pll_carriertracking.py
+++ b/gr-analog/python/analog/qa_pll_carriertracking.py
@@ -20,11 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
import math
+from gnuradio import gr, gr_unittest, analog, blocks
+
class test_pll_carriertracking(gr_unittest.TestCase):
def setUp (self):
diff --git a/gr-analog/python/qa_pll_freqdet.py b/gr-analog/python/analog/qa_pll_freqdet.py
index 11f2a9b959..0166a40258 100755
--- a/gr-analog/python/qa_pll_freqdet.py
+++ b/gr-analog/python/analog/qa_pll_freqdet.py
@@ -20,11 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
import math
+from gnuradio import gr, gr_unittest, analog, blocks
+
class test_pll_freqdet(gr_unittest.TestCase):
def setUp (self):
diff --git a/gr-analog/python/qa_pll_refout.py b/gr-analog/python/analog/qa_pll_refout.py
index f90e7c3ada..f85a027aa3 100755
--- a/gr-analog/python/qa_pll_refout.py
+++ b/gr-analog/python/analog/qa_pll_refout.py
@@ -20,11 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
import math
+from gnuradio import gr, gr_unittest, analog, blocks
+
class test_pll_refout(gr_unittest.TestCase):
def setUp(self):
diff --git a/gr-analog/python/qa_probe_avg_mag_sqrd.py b/gr-analog/python/analog/qa_probe_avg_mag_sqrd.py
index 930077c9c0..a52c0806e3 100755
--- a/gr-analog/python/qa_probe_avg_mag_sqrd.py
+++ b/gr-analog/python/analog/qa_probe_avg_mag_sqrd.py
@@ -20,11 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
import math
+from gnuradio import gr, gr_unittest, analog, blocks
+
def avg_mag_sqrd_c(x, alpha):
y = [0,]
for xi in x:
diff --git a/gr-analog/python/qa_pwr_squelch.py b/gr-analog/python/analog/qa_pwr_squelch.py
index 238723ba3c..e366192f68 100755
--- a/gr-analog/python/qa_pwr_squelch.py
+++ b/gr-analog/python/analog/qa_pwr_squelch.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, analog, blocks
class test_pwr_squelch(gr_unittest.TestCase):
diff --git a/gr-analog/python/qa_quadrature_demod.py b/gr-analog/python/analog/qa_quadrature_demod.py
index 0a92bb12a5..bcf9aaa17f 100755
--- a/gr-analog/python/qa_quadrature_demod.py
+++ b/gr-analog/python/analog/qa_quadrature_demod.py
@@ -20,11 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
import cmath
+from gnuradio import gr, gr_unittest, analog, blocks
+
class test_quadrature_demod(gr_unittest.TestCase):
def setUp(self):
diff --git a/gr-analog/python/qa_rail_ff.py b/gr-analog/python/analog/qa_rail_ff.py
index 58ac01d7a6..4a7d3f3f7d 100755
--- a/gr-analog/python/qa_rail_ff.py
+++ b/gr-analog/python/analog/qa_rail_ff.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, analog, blocks
def clip(x, lo, hi):
if(x < lo):
diff --git a/gr-analog/python/qa_sig_source.py b/gr-analog/python/analog/qa_sig_source.py
index 0aa03c7402..5ee4f24af8 100755
--- a/gr-analog/python/qa_sig_source.py
+++ b/gr-analog/python/analog/qa_sig_source.py
@@ -20,11 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
import math
+from gnuradio import gr, gr_unittest, analog, blocks
+
class test_sig_source(gr_unittest.TestCase):
def setUp(self):
diff --git a/gr-analog/python/qa_simple_squelch.py b/gr-analog/python/analog/qa_simple_squelch.py
index 2bd88e1489..35f28a6122 100755
--- a/gr-analog/python/qa_simple_squelch.py
+++ b/gr-analog/python/analog/qa_simple_squelch.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import analog_swig as analog
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, analog, blocks
class test_simple_squelch(gr_unittest.TestCase):
diff --git a/gr-analog/python/standard_squelch.py b/gr-analog/python/analog/standard_squelch.py
index 3ed9ebceaa..3ed9ebceaa 100644
--- a/gr-analog/python/standard_squelch.py
+++ b/gr-analog/python/analog/standard_squelch.py
diff --git a/gr-analog/python/wfm_rcv.py b/gr-analog/python/analog/wfm_rcv.py
index d35d219275..d35d219275 100644
--- a/gr-analog/python/wfm_rcv.py
+++ b/gr-analog/python/analog/wfm_rcv.py
diff --git a/gr-analog/python/wfm_rcv_fmdet.py b/gr-analog/python/analog/wfm_rcv_fmdet.py
index b7cd1458fb..b7cd1458fb 100644
--- a/gr-analog/python/wfm_rcv_fmdet.py
+++ b/gr-analog/python/analog/wfm_rcv_fmdet.py
diff --git a/gr-analog/python/wfm_rcv_pll.py b/gr-analog/python/analog/wfm_rcv_pll.py
index 282e2b14be..282e2b14be 100644
--- a/gr-analog/python/wfm_rcv_pll.py
+++ b/gr-analog/python/analog/wfm_rcv_pll.py
diff --git a/gr-analog/python/wfm_tx.py b/gr-analog/python/analog/wfm_tx.py
index be662310db..be662310db 100644
--- a/gr-analog/python/wfm_tx.py
+++ b/gr-analog/python/analog/wfm_tx.py
diff --git a/gr-blocks/CMakeLists.txt b/gr-blocks/CMakeLists.txt
index 6014f871bd..13b41a2e3c 100644
--- a/gr-blocks/CMakeLists.txt
+++ b/gr-blocks/CMakeLists.txt
@@ -86,7 +86,7 @@ add_subdirectory(lib)
# add_subdirectory(tests)
#endif(ENABLE_TESTING)
if(ENABLE_PYTHON)
- add_subdirectory(python)
+ add_subdirectory(python/blocks)
add_subdirectory(swig)
add_subdirectory(grc)
add_subdirectory(doc)
diff --git a/gr-blocks/python/CMakeLists.txt b/gr-blocks/python/blocks/CMakeLists.txt
index 7440e4e9df..aa8d3b6c81 100644
--- a/gr-blocks/python/CMakeLists.txt
+++ b/gr-blocks/python/blocks/CMakeLists.txt
@@ -34,29 +34,27 @@ GR_PYTHON_INSTALL(
########################################################################
if(ENABLE_TESTING)
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-blocks/python
- ${CMAKE_BINARY_DIR}/gr-blocks/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-blocks)
-
-include(GrTest)
-
-# Grab all QA test blocks.
-file(GLOB py_qa_test_files "qa_*.py")
-
-# Force out the controlport QA tests if we've disabled it.
-if(NOT ENABLE_GR_CTRLPORT)
- list(REMOVE_ITEM py_qa_test_files
- ${CMAKE_CURRENT_SOURCE_DIR}/qa_cpp_py_binding.py
- ${CMAKE_CURRENT_SOURCE_DIR}/qa_cpp_py_binding_set.py
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
)
-endif(NOT ENABLE_GR_CTRLPORT)
-# Setup tests for all valid QA files.
-foreach(py_qa_test_file ${py_qa_test_files})
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+
+ # Force out the controlport QA tests if we've disabled it.
+ if(NOT ENABLE_GR_CTRLPORT)
+ list(REMOVE_ITEM py_qa_test_files
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_cpp_py_binding.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_cpp_py_binding_set.py
+ )
+ endif(NOT ENABLE_GR_CTRLPORT)
+
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-blocks/python/__init__.py b/gr-blocks/python/blocks/__init__.py
index 97625c7c6a..b7ba794ea2 100644
--- a/gr-blocks/python/__init__.py
+++ b/gr-blocks/python/blocks/__init__.py
@@ -22,8 +22,15 @@
'''
Processing blocks common to many flowgraphs.
'''
+import os
-from blocks_swig import *
+try:
+ from blocks_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from blocks_swig import *
+
from stream_to_vector_decimator import *
#alias old add_vXX and multiply_vXX
diff --git a/gr-blocks/python/parse_file_metadata.py b/gr-blocks/python/blocks/parse_file_metadata.py
index a876f49b07..a876f49b07 100644
--- a/gr-blocks/python/parse_file_metadata.py
+++ b/gr-blocks/python/blocks/parse_file_metadata.py
diff --git a/gr-blocks/python/qa_add_mult_div_sub.py b/gr-blocks/python/blocks/qa_add_mult_div_sub.py
index 6d48a6c389..7c9b2beac0 100755
--- a/gr-blocks/python/qa_add_mult_div_sub.py
+++ b/gr-blocks/python/blocks/qa_add_mult_div_sub.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_add_mult_div_sub(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_add_mult_v.py b/gr-blocks/python/blocks/qa_add_mult_v.py
index 39040b159a..721ee4eca6 100755
--- a/gr-blocks/python/qa_add_mult_v.py
+++ b/gr-blocks/python/blocks/qa_add_mult_v.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_add_mult_v(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_argmax.py b/gr-blocks/python/blocks/qa_argmax.py
index 2fc8641d16..fead481c0f 100644
--- a/gr-blocks/python/qa_argmax.py
+++ b/gr-blocks/python/blocks/qa_argmax.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
import math
class test_arg_max(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_bin_statistics.py b/gr-blocks/python/blocks/qa_bin_statistics.py
index 45d5105eb2..52b8585721 100755
--- a/gr-blocks/python/qa_bin_statistics.py
+++ b/gr-blocks/python/blocks/qa_bin_statistics.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
import random
import struct
diff --git a/gr-blocks/python/qa_boolean_operators.py b/gr-blocks/python/blocks/qa_boolean_operators.py
index 8755dad2fc..cbcd5688a1 100755
--- a/gr-blocks/python/qa_boolean_operators.py
+++ b/gr-blocks/python/blocks/qa_boolean_operators.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_boolean_operators (gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_burst_tagger.py b/gr-blocks/python/blocks/qa_burst_tagger.py
index 9923d2a368..50aaf893bd 100644
--- a/gr-blocks/python/qa_burst_tagger.py
+++ b/gr-blocks/python/blocks/qa_burst_tagger.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
import pmt
class test_burst_tagger(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_conjugate.py b/gr-blocks/python/blocks/qa_conjugate.py
index 7aab2e70a7..36172e30a0 100644
--- a/gr-blocks/python/qa_conjugate.py
+++ b/gr-blocks/python/blocks/qa_conjugate.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_conjugate (gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_delay.py b/gr-blocks/python/blocks/qa_delay.py
index 44b87c14ae..a0853309b3 100755
--- a/gr-blocks/python/qa_delay.py
+++ b/gr-blocks/python/blocks/qa_delay.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_delay(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_file_metadata.py b/gr-blocks/python/blocks/qa_file_metadata.py
index de571303f7..bf021870b5 100644
--- a/gr-blocks/python/qa_file_metadata.py
+++ b/gr-blocks/python/blocks/qa_file_metadata.py
@@ -20,12 +20,13 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import parse_file_metadata
-import blocks_swig as blocks
-import pmt
import os, math
+from gnuradio import gr, gr_unittest, blocks
+import pmt
+
+import parse_file_metadata
+
def sig_source_c(samp_rate, freq, amp, N):
t = map(lambda x: float(x)/samp_rate, xrange(N))
y = map(lambda x: amp*math.cos(2.*math.pi*freq*x) + \
diff --git a/gr-blocks/python/qa_integrate.py b/gr-blocks/python/blocks/qa_integrate.py
index 9d9d9345f4..6128169a61 100755
--- a/gr-blocks/python/qa_integrate.py
+++ b/gr-blocks/python/blocks/qa_integrate.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
-import math
+from gnuradio import gr, gr_unittest, blocks
class test_integrate (gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_interleave.py b/gr-blocks/python/blocks/qa_interleave.py
index a65824ec33..9eaf87c83c 100755
--- a/gr-blocks/python/qa_interleave.py
+++ b/gr-blocks/python/blocks/qa_interleave.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
-import math
+from gnuradio import gr, gr_unittest, blocks
class test_interleave (gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_keep_m_in_n.py b/gr-blocks/python/blocks/qa_keep_m_in_n.py
index 22e8c45138..4db48335b2 100755
--- a/gr-blocks/python/qa_keep_m_in_n.py
+++ b/gr-blocks/python/blocks/qa_keep_m_in_n.py
@@ -19,8 +19,8 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
import sys
import random
diff --git a/gr-blocks/python/qa_keep_one_in_n.py b/gr-blocks/python/blocks/qa_keep_one_in_n.py
index a96f0a9518..2a5d936cce 100755
--- a/gr-blocks/python/qa_keep_one_in_n.py
+++ b/gr-blocks/python/blocks/qa_keep_one_in_n.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_keep_one_in_n(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_max.py b/gr-blocks/python/blocks/qa_max.py
index 982f4b5590..441582ac88 100755
--- a/gr-blocks/python/qa_max.py
+++ b/gr-blocks/python/blocks/qa_max.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
import math
class test_max(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_message.py b/gr-blocks/python/blocks/qa_message.py
index 27cf186ed3..abfc652199 100755
--- a/gr-blocks/python/qa_message.py
+++ b/gr-blocks/python/blocks/qa_message.py
@@ -20,11 +20,11 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
-import pmt
import time
+from gnuradio import gr, gr_unittest, blocks
+import pmt
+
def all_counts():
return (gr.block_ncurrently_allocated(),
gr.block_detail_ncurrently_allocated(),
diff --git a/gr-blocks/python/qa_moving_average.py b/gr-blocks/python/blocks/qa_moving_average.py
index d3fbdbbfdf..2c58805925 100644
--- a/gr-blocks/python/qa_moving_average.py
+++ b/gr-blocks/python/blocks/qa_moving_average.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
import math, random
def make_random_complex_tuple(L, scale=1):
diff --git a/gr-blocks/python/qa_multiply_conjugate.py b/gr-blocks/python/blocks/qa_multiply_conjugate.py
index a18d80324c..c2391f1410 100644
--- a/gr-blocks/python/qa_multiply_conjugate.py
+++ b/gr-blocks/python/blocks/qa_multiply_conjugate.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_multiply_conjugate (gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_mute.py b/gr-blocks/python/blocks/qa_mute.py
index 0c10846333..97ee5bd821 100755
--- a/gr-blocks/python/qa_mute.py
+++ b/gr-blocks/python/blocks/qa_mute.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_mute(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_nlog10.py b/gr-blocks/python/blocks/qa_nlog10.py
index a61313cacc..0194e85d48 100755
--- a/gr-blocks/python/qa_nlog10.py
+++ b/gr-blocks/python/blocks/qa_nlog10.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_nlog10(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_pack_k_bits.py b/gr-blocks/python/blocks/qa_pack_k_bits.py
index 51152889f6..b73bf3d5a9 100755
--- a/gr-blocks/python/qa_pack_k_bits.py
+++ b/gr-blocks/python/blocks/qa_pack_k_bits.py
@@ -20,10 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
import random
+from gnuradio import gr, gr_unittest, blocks
+
class test_pack(gr_unittest.TestCase):
def setUp(self):
diff --git a/gr-blocks/python/qa_packed_to_unpacked.py b/gr-blocks/python/blocks/qa_packed_to_unpacked.py
index 23745d3859..02dc872490 100755
--- a/gr-blocks/python/qa_packed_to_unpacked.py
+++ b/gr-blocks/python/blocks/qa_packed_to_unpacked.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
import random
class test_packing(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_patterned_interleaver.py b/gr-blocks/python/blocks/qa_patterned_interleaver.py
index c960ac2e66..c9fe7b123b 100755
--- a/gr-blocks/python/qa_patterned_interleaver.py
+++ b/gr-blocks/python/blocks/qa_patterned_interleaver.py
@@ -20,11 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-try:
- import blocks_swig as blocks
-except:
- from gnuradio import blocks
+from gnuradio import gr, gr_unittest, blocks
+
import math
class test_patterned_interleaver (gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_pdu.py b/gr-blocks/python/blocks/qa_pdu.py
index a9d8ea86f3..685d1dbaae 100755
--- a/gr-blocks/python/qa_pdu.py
+++ b/gr-blocks/python/blocks/qa_pdu.py
@@ -20,11 +20,11 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
-import pmt
import time
+from gnuradio import gr, gr_unittest, blocks
+import pmt
+
class test_pdu(gr_unittest.TestCase):
def setUp(self):
diff --git a/gr-blocks/python/qa_peak_detector.py b/gr-blocks/python/blocks/qa_peak_detector.py
index 4b28518410..c855e92530 100644
--- a/gr-blocks/python/qa_peak_detector.py
+++ b/gr-blocks/python/blocks/qa_peak_detector.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_peak_detector(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_peak_detector2.py b/gr-blocks/python/blocks/qa_peak_detector2.py
index 5fcda9be08..475897eac2 100644
--- a/gr-blocks/python/qa_peak_detector2.py
+++ b/gr-blocks/python/blocks/qa_peak_detector2.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_peak_detector2(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_pipe_fittings.py b/gr-blocks/python/blocks/qa_pipe_fittings.py
index 634638dcdd..bc29cc750e 100755
--- a/gr-blocks/python/qa_pipe_fittings.py
+++ b/gr-blocks/python/blocks/qa_pipe_fittings.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
def calc_expected_result(src_data, n):
assert (len(src_data) % n) == 0
diff --git a/gr-blocks/python/qa_probe_signal.py b/gr-blocks/python/blocks/qa_probe_signal.py
index 1cb151bfc0..8194cafdb0 100644
--- a/gr-blocks/python/qa_probe_signal.py
+++ b/gr-blocks/python/blocks/qa_probe_signal.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_probe_signal(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_regenerate.py b/gr-blocks/python/blocks/qa_regenerate.py
index 0be68d001c..52b6bdb515 100755
--- a/gr-blocks/python/qa_regenerate.py
+++ b/gr-blocks/python/blocks/qa_regenerate.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_regenerate(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_repeat.py b/gr-blocks/python/blocks/qa_repeat.py
index aa1b1f45f1..eaf20d4e27 100755
--- a/gr-blocks/python/qa_repeat.py
+++ b/gr-blocks/python/blocks/qa_repeat.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
-import math
+from gnuradio import gr, gr_unittest, blocks
class test_repeat (gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_rms.py b/gr-blocks/python/blocks/qa_rms.py
index 3dac70c1ec..0b07c37bdc 100644
--- a/gr-blocks/python/qa_rms.py
+++ b/gr-blocks/python/blocks/qa_rms.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
import math
def sig_source_f(samp_rate, freq, amp, N):
diff --git a/gr-blocks/python/qa_sample_and_hold.py b/gr-blocks/python/blocks/qa_sample_and_hold.py
index 87d472a038..d6aedc23cc 100644
--- a/gr-blocks/python/qa_sample_and_hold.py
+++ b/gr-blocks/python/blocks/qa_sample_and_hold.py
@@ -21,8 +21,7 @@
#
import time
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_sample_and_hold(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_stream_mux.py b/gr-blocks/python/blocks/qa_stream_mux.py
index a5004dd8da..7abbced54c 100755
--- a/gr-blocks/python/qa_stream_mux.py
+++ b/gr-blocks/python/blocks/qa_stream_mux.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
import os
class test_stream_mux (gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_stretch.py b/gr-blocks/python/blocks/qa_stretch.py
index 94bb6e0353..66a04d53f6 100755
--- a/gr-blocks/python/qa_stretch.py
+++ b/gr-blocks/python/blocks/qa_stretch.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_stretch(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_tag_debug.py b/gr-blocks/python/blocks/qa_tag_debug.py
index 52864d34fb..5ccb285a5d 100755
--- a/gr-blocks/python/qa_tag_debug.py
+++ b/gr-blocks/python/blocks/qa_tag_debug.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_tag_debug(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_threshold.py b/gr-blocks/python/blocks/qa_threshold.py
index 352a14da9e..49798426f3 100644
--- a/gr-blocks/python/qa_threshold.py
+++ b/gr-blocks/python/blocks/qa_threshold.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_threshold(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_throttle.py b/gr-blocks/python/blocks/qa_throttle.py
index 5d462f2c9f..7d18e87ade 100755
--- a/gr-blocks/python/qa_throttle.py
+++ b/gr-blocks/python/blocks/qa_throttle.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
class test_throttle(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_transcendental.py b/gr-blocks/python/blocks/qa_transcendental.py
index b57b0b4430..1da56381f4 100644
--- a/gr-blocks/python/qa_transcendental.py
+++ b/gr-blocks/python/blocks/qa_transcendental.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
import math
class test_transcendental(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_type_conversions.py b/gr-blocks/python/blocks/qa_type_conversions.py
index 548ab33926..0246320159 100755
--- a/gr-blocks/python/qa_type_conversions.py
+++ b/gr-blocks/python/blocks/qa_type_conversions.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
from math import sqrt, atan2
class test_type_conversions(gr_unittest.TestCase):
diff --git a/gr-blocks/python/qa_unpack_k_bits.py b/gr-blocks/python/blocks/qa_unpack_k_bits.py
index dd7024f74c..765c459dfa 100755
--- a/gr-blocks/python/qa_unpack_k_bits.py
+++ b/gr-blocks/python/blocks/qa_unpack_k_bits.py
@@ -20,8 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, blocks
+
import random
class test_unpack(gr_unittest.TestCase):
diff --git a/gr-blocks/python/stream_to_vector_decimator.py b/gr-blocks/python/blocks/stream_to_vector_decimator.py
index c32ae6fce2..c32ae6fce2 100644
--- a/gr-blocks/python/stream_to_vector_decimator.py
+++ b/gr-blocks/python/blocks/stream_to_vector_decimator.py
diff --git a/gr-comedi/CMakeLists.txt b/gr-comedi/CMakeLists.txt
index d54f44c29d..d09bb186b4 100644
--- a/gr-comedi/CMakeLists.txt
+++ b/gr-comedi/CMakeLists.txt
@@ -92,7 +92,7 @@ add_subdirectory(include/gnuradio/comedi)
add_subdirectory(lib)
if(ENABLE_PYTHON)
add_subdirectory(swig)
- add_subdirectory(python)
+ add_subdirectory(python/comedi)
endif(ENABLE_PYTHON)
########################################################################
diff --git a/gr-comedi/python/CMakeLists.txt b/gr-comedi/python/comedi/CMakeLists.txt
index d8c9fa5d9f..0b62bd910b 100644
--- a/gr-comedi/python/CMakeLists.txt
+++ b/gr-comedi/python/comedi/CMakeLists.txt
@@ -34,17 +34,17 @@ GR_PYTHON_INSTALL(
########################################################################
if(ENABLE_TESTING)
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-comedi/python
- ${CMAKE_BINARY_DIR}/gr-comedi/swig
-)
-
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-comedi)
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-comedi/python/__init__.py b/gr-comedi/python/comedi/__init__.py
index afe7a161f4..939889dccb 100644
--- a/gr-comedi/python/__init__.py
+++ b/gr-comedi/python/comedi/__init__.py
@@ -23,5 +23,11 @@ Blocks and utilities for COMEDI devices
'''
# The presence of this file turns this directory into a Python package
+import os
-from comedi_swig import *
+try:
+ from comedi_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from comedi_swig import *
diff --git a/gr-comedi/python/qa_comedi.py b/gr-comedi/python/comedi/qa_comedi.py
index 573a2193f7..08ec92dd13 100755
--- a/gr-comedi/python/qa_comedi.py
+++ b/gr-comedi/python/comedi/qa_comedi.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import comedi_swig as comedi
+from gnuradio import gr, gr_unittest, comedi
class test_comedi(gr_unittest.TestCase):
diff --git a/gr-digital/CMakeLists.txt b/gr-digital/CMakeLists.txt
index 4c7647a4db..7a9f8f6c48 100644
--- a/gr-digital/CMakeLists.txt
+++ b/gr-digital/CMakeLists.txt
@@ -96,7 +96,7 @@ add_subdirectory(lib)
add_subdirectory(doc)
if(ENABLE_PYTHON)
add_subdirectory(swig)
- add_subdirectory(python)
+ add_subdirectory(python/digital)
add_subdirectory(grc)
add_subdirectory(examples)
endif(ENABLE_PYTHON)
diff --git a/gr-digital/python/CMakeLists.txt b/gr-digital/python/digital/CMakeLists.txt
index e73efb70f8..919509f434 100644
--- a/gr-digital/python/CMakeLists.txt
+++ b/gr-digital/python/digital/CMakeLists.txt
@@ -66,26 +66,17 @@ GR_PYTHON_INSTALL(
########################################################################
if(ENABLE_TESTING)
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-digital/python
- ${CMAKE_BINARY_DIR}/gr-digital/swig
- ${CMAKE_BINARY_DIR}/gr-filter/python
- ${CMAKE_BINARY_DIR}/gr-filter/swig
- ${CMAKE_BINARY_DIR}/gr-analog/python
- ${CMAKE_BINARY_DIR}/gr-analog/swig
- ${CMAKE_BINARY_DIR}/gr-blocks/python
- ${CMAKE_BINARY_DIR}/gr-blocks/swig
- ${CMAKE_BINARY_DIR}/gr-fft/python
- ${CMAKE_BINARY_DIR}/gr-fft/swig
- ${CMAKE_BINARY_DIR}/gr-channels/python
- ${CMAKE_BINARY_DIR}/gr-channels/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-digital gnuradio-filter gnuradio-fft gnuradio-analog gnuradio-blocks)
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-digital/python/__init__.py b/gr-digital/python/digital/__init__.py
index 6bbe8160e8..5059e4eec8 100644
--- a/gr-digital/python/__init__.py
+++ b/gr-digital/python/digital/__init__.py
@@ -24,7 +24,14 @@ Blocks and utilities for digital modulation and demodulation.
# The presence of this file turns this directory into a Python package
-from digital_swig import *
+import os
+
+try:
+ from digital_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from digital_swig import *
from psk import *
from qam import *
from qamlike import *
diff --git a/gr-digital/python/bpsk.py b/gr-digital/python/digital/bpsk.py
index 57cf2534f4..57cf2534f4 100644
--- a/gr-digital/python/bpsk.py
+++ b/gr-digital/python/digital/bpsk.py
diff --git a/gr-digital/python/cpm.py b/gr-digital/python/digital/cpm.py
index b27fb098f5..b27fb098f5 100644
--- a/gr-digital/python/cpm.py
+++ b/gr-digital/python/digital/cpm.py
diff --git a/gr-digital/python/crc.py b/gr-digital/python/digital/crc.py
index e228faaa98..e228faaa98 100644
--- a/gr-digital/python/crc.py
+++ b/gr-digital/python/digital/crc.py
diff --git a/gr-digital/python/digital_voice.py.real b/gr-digital/python/digital/digital_voice.py.real
index 241a4a3dc2..241a4a3dc2 100644
--- a/gr-digital/python/digital_voice.py.real
+++ b/gr-digital/python/digital/digital_voice.py.real
diff --git a/gr-digital/python/generic_mod_demod.py b/gr-digital/python/digital/generic_mod_demod.py
index b812fe1c37..b812fe1c37 100644
--- a/gr-digital/python/generic_mod_demod.py
+++ b/gr-digital/python/digital/generic_mod_demod.py
diff --git a/gr-digital/python/gfsk.py b/gr-digital/python/digital/gfsk.py
index 6ba007ca0f..6ba007ca0f 100644
--- a/gr-digital/python/gfsk.py
+++ b/gr-digital/python/digital/gfsk.py
diff --git a/gr-digital/python/gmsk.py b/gr-digital/python/digital/gmsk.py
index 055fc6002b..9a44837002 100644
--- a/gr-digital/python/gmsk.py
+++ b/gr-digital/python/digital/gmsk.py
@@ -24,21 +24,15 @@
# See gnuradio-examples/python/digital for examples
-from gnuradio import gr
-from gnuradio import blocks
-from gnuradio import analog
-import modulation_utils
-import digital_swig as digital
from math import pi
-import numpy
from pprint import pprint
import inspect
-try:
- from gnuradio import filter
-except ImportError:
- import filter_swig as filter
+import numpy
+from gnuradio import gr, blocks, analog, filter
+import modulation_utils
+import digital_swig as digital
# default values (used in __init__ and add_options)
_def_samples_per_symbol = 2
diff --git a/gr-digital/python/modulation_utils.py b/gr-digital/python/digital/modulation_utils.py
index d499094d05..d499094d05 100644
--- a/gr-digital/python/modulation_utils.py
+++ b/gr-digital/python/digital/modulation_utils.py
diff --git a/gr-digital/python/ofdm.py b/gr-digital/python/digital/ofdm.py
index fdb23703f9..fdb23703f9 100644
--- a/gr-digital/python/ofdm.py
+++ b/gr-digital/python/digital/ofdm.py
diff --git a/gr-digital/python/ofdm_packet_utils.py b/gr-digital/python/digital/ofdm_packet_utils.py
index c49dfe4f8e..c49dfe4f8e 100644
--- a/gr-digital/python/ofdm_packet_utils.py
+++ b/gr-digital/python/digital/ofdm_packet_utils.py
diff --git a/gr-digital/python/ofdm_receiver.py b/gr-digital/python/digital/ofdm_receiver.py
index 4fbf76251a..4fbf76251a 100644
--- a/gr-digital/python/ofdm_receiver.py
+++ b/gr-digital/python/digital/ofdm_receiver.py
diff --git a/gr-digital/python/ofdm_sync_fixed.py b/gr-digital/python/digital/ofdm_sync_fixed.py
index 9cbd59b943..9cbd59b943 100644
--- a/gr-digital/python/ofdm_sync_fixed.py
+++ b/gr-digital/python/digital/ofdm_sync_fixed.py
diff --git a/gr-digital/python/ofdm_sync_ml.py b/gr-digital/python/digital/ofdm_sync_ml.py
index 3afd647098..3afd647098 100644
--- a/gr-digital/python/ofdm_sync_ml.py
+++ b/gr-digital/python/digital/ofdm_sync_ml.py
diff --git a/gr-digital/python/ofdm_sync_pn.py b/gr-digital/python/digital/ofdm_sync_pn.py
index 4c6a30f802..4c6a30f802 100644
--- a/gr-digital/python/ofdm_sync_pn.py
+++ b/gr-digital/python/digital/ofdm_sync_pn.py
diff --git a/gr-digital/python/ofdm_sync_pnac.py b/gr-digital/python/digital/ofdm_sync_pnac.py
index ee7c82927a..ee7c82927a 100644
--- a/gr-digital/python/ofdm_sync_pnac.py
+++ b/gr-digital/python/digital/ofdm_sync_pnac.py
diff --git a/gr-digital/python/ofdm_txrx.py b/gr-digital/python/digital/ofdm_txrx.py
index 8f1b4c5f02..8f1b4c5f02 100644
--- a/gr-digital/python/ofdm_txrx.py
+++ b/gr-digital/python/digital/ofdm_txrx.py
diff --git a/gr-digital/python/packet_utils.py b/gr-digital/python/digital/packet_utils.py
index 2929758ef0..2929758ef0 100644
--- a/gr-digital/python/packet_utils.py
+++ b/gr-digital/python/digital/packet_utils.py
diff --git a/gr-digital/python/pkt.py b/gr-digital/python/digital/pkt.py
index 434548906e..434548906e 100644
--- a/gr-digital/python/pkt.py
+++ b/gr-digital/python/digital/pkt.py
diff --git a/gr-digital/python/psk.py b/gr-digital/python/digital/psk.py
index 1816ffb4ba..1816ffb4ba 100644
--- a/gr-digital/python/psk.py
+++ b/gr-digital/python/digital/psk.py
diff --git a/gr-digital/python/qa_binary_slicer_fb.py b/gr-digital/python/digital/qa_binary_slicer_fb.py
index 40213d7e33..93e12dbb8d 100755
--- a/gr-digital/python/qa_binary_slicer_fb.py
+++ b/gr-digital/python/digital/qa_binary_slicer_fb.py
@@ -20,10 +20,9 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
-import math, random
+import random
+
+from gnuradio import gr, gr_unittest, digital, blocks
class test_binary_slicer_fb(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_chunks_to_symbols.py b/gr-digital/python/digital/qa_chunks_to_symbols.py
index cbc29b83a9..25798f33e5 100755
--- a/gr-digital/python/qa_chunks_to_symbols.py
+++ b/gr-digital/python/digital/qa_chunks_to_symbols.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, digital, blocks
class test_chunks_to_symbols(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_clock_recovery_mm.py b/gr-digital/python/digital/qa_clock_recovery_mm.py
index f696c9f124..783770d6e9 100755
--- a/gr-digital/python/qa_clock_recovery_mm.py
+++ b/gr-digital/python/digital/qa_clock_recovery_mm.py
@@ -20,10 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
-import random, cmath
+import random
+import cmath
+
+from gnuradio import gr, gr_unittest, digital, blocks
class test_clock_recovery_mm(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_cma_equalizer.py b/gr-digital/python/digital/qa_cma_equalizer.py
index 183ba4f4e7..6da391f70c 100755
--- a/gr-digital/python/qa_cma_equalizer.py
+++ b/gr-digital/python/digital/qa_cma_equalizer.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, digital, blocks
class test_cma_equalizer_fir(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_constellation.py b/gr-digital/python/digital/qa_constellation.py
index 77fb88031c..9e7e691d5c 100755
--- a/gr-digital/python/qa_constellation.py
+++ b/gr-digital/python/digital/qa_constellation.py
@@ -23,15 +23,9 @@
import random
from cmath import exp, pi, log
-from gnuradio import gr, gr_unittest
-from utils import mod_codes
-import digital_swig as digital
-import blocks_swig as blocks
-
-# import from local folder
-import psk
-import qam
-import qamlike
+from gnuradio import gr, gr_unittest, digital, blocks
+from gnuradio.digital.utils import mod_codes
+from gnuradio.digital import psk, qam, qamlike
tested_mod_codes = (mod_codes.NO_CODE, mod_codes.GRAY_CODE)
diff --git a/gr-digital/python/qa_constellation_decoder_cb.py b/gr-digital/python/digital/qa_constellation_decoder_cb.py
index 12fef4345f..d3fbce91ba 100755
--- a/gr-digital/python/qa_constellation_decoder_cb.py
+++ b/gr-digital/python/digital/qa_constellation_decoder_cb.py
@@ -20,10 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
-import math
+from gnuradio import gr, gr_unittest, digital, blocks
class test_constellation_decoder(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_constellation_receiver.py b/gr-digital/python/digital/qa_constellation_receiver.py
index 73a78d0f8e..e595b585ac 100755
--- a/gr-digital/python/qa_constellation_receiver.py
+++ b/gr-digital/python/digital/qa_constellation_receiver.py
@@ -21,19 +21,15 @@
#
import random
+import math
-from gnuradio import gr, gr_unittest
-from utils import mod_codes, alignment
-import packet_utils
-import filter_swig as filter
-import analog_swig as analog
-import blocks_swig as blocks
-from generic_mod_demod import generic_mod, generic_demod
+from gnuradio import gr, gr_unittest, filter, analog, blocks, digital
+from gnuradio.digital.utils import mod_codes, alignment
+from gnuradio.digital import packet_utils
+from gnuradio.digital.generic_mod_demod import generic_mod, generic_demod
from qa_constellation import tested_constellations, twod_constell
-import math
-
# Set a seed so that if errors turn up they are reproducible.
SEED = 1239
diff --git a/gr-digital/python/qa_correlate_access_code.py b/gr-digital/python/digital/qa_correlate_access_code.py
index ccddc0f113..198a254da7 100755
--- a/gr-digital/python/qa_correlate_access_code.py
+++ b/gr-digital/python/digital/qa_correlate_access_code.py
@@ -20,10 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
-import math
+from gnuradio import gr, gr_unittest, digital, blocks
default_access_code = '\xAC\xDD\xA4\xE2\xF2\x8C\x20\xFC'
diff --git a/gr-digital/python/qa_costas_loop_cc.py b/gr-digital/python/digital/qa_costas_loop_cc.py
index 9be96101e3..9ecb017599 100755
--- a/gr-digital/python/qa_costas_loop_cc.py
+++ b/gr-digital/python/digital/qa_costas_loop_cc.py
@@ -20,11 +20,11 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
-import psk
-import random, cmath
+import random
+import cmath
+
+from gnuradio import gr, gr_unittest, digital, blocks
+from gnuradio.digital import psk
class test_costas_loop_cc(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_cpm.py b/gr-digital/python/digital/qa_cpm.py
index c87f7c34d6..6468ed507b 100755
--- a/gr-digital/python/qa_cpm.py
+++ b/gr-digital/python/digital/qa_cpm.py
@@ -20,12 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import analog_swig as analog
-import blocks_swig as blocks
import numpy
+from gnuradio import gr, gr_unittest, digital, analog, blocks
+
class test_cpm(gr_unittest.TestCase):
def setUp(self):
diff --git a/gr-digital/python/qa_crc32.py b/gr-digital/python/digital/qa_crc32.py
index cd4006b1d3..9252825ad6 100755
--- a/gr-digital/python/qa_crc32.py
+++ b/gr-digital/python/digital/qa_crc32.py
@@ -20,9 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import random, cmath
+import random
+import cmath
+
+from gnuradio import gr, gr_unittest, digital
class test_crc32(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_crc32_bb.py b/gr-digital/python/digital/qa_crc32_bb.py
index 4991f49e14..167470d420 100755
--- a/gr-digital/python/qa_crc32_bb.py
+++ b/gr-digital/python/digital/qa_crc32_bb.py
@@ -19,9 +19,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
-import digital_swig as digital
+from gnuradio import gr, gr_unittest, blocks, digital
import pmt
class qa_crc32_bb (gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_diff_encoder.py b/gr-digital/python/digital/qa_diff_encoder.py
index 06efdf7189..410b937fbc 100755
--- a/gr-digital/python/qa_diff_encoder.py
+++ b/gr-digital/python/digital/qa_diff_encoder.py
@@ -20,12 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
-import math
import random
+from gnuradio import gr, gr_unittest, digital, blocks
+
def make_random_int_tuple(L, min, max):
result = []
for x in range(L):
diff --git a/gr-digital/python/qa_diff_phasor_cc.py b/gr-digital/python/digital/qa_diff_phasor_cc.py
index 87ff59a2c4..7cae4870cc 100755
--- a/gr-digital/python/qa_diff_phasor_cc.py
+++ b/gr-digital/python/digital/qa_diff_phasor_cc.py
@@ -20,10 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
-import math
+from gnuradio import gr, gr_unittest, digital, blocks
class test_diff_phasor(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_digital.py b/gr-digital/python/digital/qa_digital.py
index 6f54f14208..63a167dece 100755
--- a/gr-digital/python/qa_digital.py
+++ b/gr-digital/python/digital/qa_digital.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
+from gnuradio import gr, gr_unittest, digital
class test_digital(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_fll_band_edge.py b/gr-digital/python/digital/qa_fll_band_edge.py
index 050bf888d5..17c5fa85f8 100755
--- a/gr-digital/python/qa_fll_band_edge.py
+++ b/gr-digital/python/digital/qa_fll_band_edge.py
@@ -20,12 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import filter_swig as filter
-import blocks_swig as blocks
-import analog_swig as analog
-import random, math
+import random
+import math
+
+from gnuradio import gr, gr_unittest, digital, filter, blocks, analog
class test_fll_band_edge_cc(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_framer_sink.py b/gr-digital/python/digital/qa_framer_sink.py
index bf6c5cc96d..4b260c14ec 100755
--- a/gr-digital/python/qa_framer_sink.py
+++ b/gr-digital/python/digital/qa_framer_sink.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, digital, blocks
default_access_code = '\xAC\xDD\xA4\xE2\xF2\x8C\x20\xFC'
diff --git a/gr-digital/python/qa_glfsr_source.py b/gr-digital/python/digital/qa_glfsr_source.py
index 227801c07e..f39c408198 100755
--- a/gr-digital/python/qa_glfsr_source.py
+++ b/gr-digital/python/digital/qa_glfsr_source.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, digital, blocks
class test_glfsr_source(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_header_payload_demux.py b/gr-digital/python/digital/qa_header_payload_demux.py
index 222b457021..e0ade4e5fa 100755
--- a/gr-digital/python/qa_header_payload_demux.py
+++ b/gr-digital/python/digital/qa_header_payload_demux.py
@@ -19,12 +19,11 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import pmt
-import digital_swig as digital
-import blocks_swig as blocks
import time
+from gnuradio import gr, gr_unittest, digital, blocks
+import pmt
+
class qa_header_payload_demux (gr_unittest.TestCase):
def setUp (self):
diff --git a/gr-digital/python/qa_lfsr.py b/gr-digital/python/digital/qa_lfsr.py
index d70c466ca7..8b8872ab3b 100755
--- a/gr-digital/python/qa_lfsr.py
+++ b/gr-digital/python/digital/qa_lfsr.py
@@ -20,10 +20,9 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
import math
+from gnuradio import gr, gr_unittest, digital
class test_lfsr(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_lms_equalizer.py b/gr-digital/python/digital/qa_lms_equalizer.py
index 749cce2075..7768c1f078 100755
--- a/gr-digital/python/qa_lms_equalizer.py
+++ b/gr-digital/python/digital/qa_lms_equalizer.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, digital, blocks
class test_lms_dd_equalizer(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_map.py b/gr-digital/python/digital/qa_map.py
index 2083d4a849..604fa084d9 100755
--- a/gr-digital/python/qa_map.py
+++ b/gr-digital/python/digital/qa_map.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, digital, blocks
class test_map(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_mpsk_receiver.py b/gr-digital/python/digital/qa_mpsk_receiver.py
index 9590df1f72..1379b52e61 100755
--- a/gr-digital/python/qa_mpsk_receiver.py
+++ b/gr-digital/python/digital/qa_mpsk_receiver.py
@@ -20,11 +20,11 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import filter_swig as filter
-import blocks_swig as blocks
-import random, cmath, time
+import random
+import cmath
+import time
+
+from gnuradio import gr, gr_unittest, digital, filter, blocks
class test_mpsk_receiver(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_mpsk_snr_est.py b/gr-digital/python/digital/qa_mpsk_snr_est.py
index ac8af4374e..032edf1c73 100755
--- a/gr-digital/python/qa_mpsk_snr_est.py
+++ b/gr-digital/python/digital/qa_mpsk_snr_est.py
@@ -19,11 +19,9 @@
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
#
+import random
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
-import math, random
+from gnuradio import gr, gr_unittest, digital, blocks
def get_cplx():
return complex(2*random.randint(0,1) - 1, 0)
diff --git a/gr-digital/python/qa_ofdm_carrier_allocator_cvc.py b/gr-digital/python/digital/qa_ofdm_carrier_allocator_cvc.py
index c0c9929646..5c95e6e335 100755
--- a/gr-digital/python/qa_ofdm_carrier_allocator_cvc.py
+++ b/gr-digital/python/digital/qa_ofdm_carrier_allocator_cvc.py
@@ -19,10 +19,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
+from gnuradio import gr, gr_unittest, digital, blocks
import pmt
-import digital_swig as digital
-import blocks_swig as blocks
class qa_digital_carrier_allocator_cvc (gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_ofdm_chanest_vcvc.py b/gr-digital/python/digital/qa_ofdm_chanest_vcvc.py
index ae11c0534c..e6b331b2a8 100755
--- a/gr-digital/python/qa_ofdm_chanest_vcvc.py
+++ b/gr-digital/python/digital/qa_ofdm_chanest_vcvc.py
@@ -22,13 +22,11 @@
import sys
import numpy
import random
-from gnuradio import gr, gr_unittest
+
+import numpy
+
+from gnuradio import gr, gr_unittest, blocks, analog, digital
import pmt
-import blocks_swig as blocks
-import analog_swig as analog
-import digital_swig as digital
-import blocks_swig as blocks
-from ofdm_txrx import ofdm_tx
def shift_tuple(vec, N):
""" Shifts a vector by N elements. Fills up with zeros. """
diff --git a/gr-digital/python/qa_ofdm_cyclic_prefixer.py b/gr-digital/python/digital/qa_ofdm_cyclic_prefixer.py
index 69091d8d00..5cb9fae777 100755
--- a/gr-digital/python/qa_ofdm_cyclic_prefixer.py
+++ b/gr-digital/python/digital/qa_ofdm_cyclic_prefixer.py
@@ -20,10 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
+from gnuradio import gr, gr_unittest, digital, blocks
import pmt
-import digital_swig as digital
-import blocks_swig as blocks
class test_ofdm_cyclic_prefixer (gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_ofdm_frame_equalizer_vcvc.py b/gr-digital/python/digital/qa_ofdm_frame_equalizer_vcvc.py
index 0c79125669..1cdb8ed9a4 100755
--- a/gr-digital/python/qa_ofdm_frame_equalizer_vcvc.py
+++ b/gr-digital/python/digital/qa_ofdm_frame_equalizer_vcvc.py
@@ -20,10 +20,9 @@
#
import numpy
-from gnuradio import gr, gr_unittest
+
+from gnuradio import gr, gr_unittest, digital, blocks
import pmt
-import digital_swig as digital
-import blocks_swig as blocks
class qa_ofdm_frame_equalizer_vcvc (gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_ofdm_insert_preamble.py b/gr-digital/python/digital/qa_ofdm_insert_preamble.py
index ec7ace8905..4edd54c8c6 100755
--- a/gr-digital/python/qa_ofdm_insert_preamble.py
+++ b/gr-digital/python/digital/qa_ofdm_insert_preamble.py
@@ -20,10 +20,9 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
from pprint import pprint
-import digital_swig as digital
-import blocks_swig as blocks
+
+from gnuradio import gr, gr_unittest, digital, blocks
class test_ofdm_insert_preamble(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_ofdm_serializer_vcc.py b/gr-digital/python/digital/qa_ofdm_serializer_vcc.py
index c53b4e4955..fbef2b1f27 100755
--- a/gr-digital/python/qa_ofdm_serializer_vcc.py
+++ b/gr-digital/python/digital/qa_ofdm_serializer_vcc.py
@@ -21,12 +21,9 @@
#
import numpy
-from gnuradio import gr, gr_unittest
+
+from gnuradio import gr, gr_unittest, blocks, fft, analog, digital
import pmt
-import blocks_swig as blocks
-import fft_swig as fft
-import analog_swig as analog
-import digital_swig as digital
class qa_ofdm_serializer_vcc (gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_ofdm_sync_sc_cfb.py b/gr-digital/python/digital/qa_ofdm_sync_sc_cfb.py
index 3a9bdb5d14..ccb6dff439 100755
--- a/gr-digital/python/qa_ofdm_sync_sc_cfb.py
+++ b/gr-digital/python/digital/qa_ofdm_sync_sc_cfb.py
@@ -23,22 +23,10 @@
import numpy
import random
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
-import analog_swig as analog
-import channels_swig as channels
-
-try:
- # This will work when feature #505 is added.
- from gnuradio import digital
- from gnuradio.digital.utils import tagged_streams
- from gnuradio.digital.ofdm_txrx import ofdm_tx
-except ImportError:
- # Until then this will work.
- import digital_swig as digital
- from utils import tagged_streams
- from ofdm_txrx import ofdm_tx
-
+from gnuradio import gr, gr_unittest, blocks, analog, channels
+from gnuradio import digital
+from gnuradio.digital.utils import tagged_streams
+from gnuradio.digital.ofdm_txrx import ofdm_tx
class qa_ofdm_sync_sc_cfb (gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_ofdm_txrx.py b/gr-digital/python/digital/qa_ofdm_txrx.py
index 568ae0d40a..adf93ee356 100755
--- a/gr-digital/python/qa_ofdm_txrx.py
+++ b/gr-digital/python/digital/qa_ofdm_txrx.py
@@ -20,15 +20,12 @@
# Boston, MA 02110-1301, USA.
#
-import numpy
-import scipy
import random
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
-import digital_swig as digital
-import channels_swig as channels
-from ofdm_txrx import ofdm_tx, ofdm_rx
-from utils import tagged_streams
+import numpy
+
+from gnuradio import gr, gr_unittest, digital, blocks, channels
+from gnuradio.digital.ofdm_txrx import ofdm_tx, ofdm_rx
+from gnuradio.digital.utils import tagged_streams
# Set this to true if you need to write out data
LOG_DEBUG_INFO=False
diff --git a/gr-digital/python/qa_packet_headergenerator_bb.py b/gr-digital/python/digital/qa_packet_headergenerator_bb.py
index 0471385afd..3697bd1eb7 100755
--- a/gr-digital/python/qa_packet_headergenerator_bb.py
+++ b/gr-digital/python/digital/qa_packet_headergenerator_bb.py
@@ -19,9 +19,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, digital, blocks
import pmt
class qa_packet_headergenerator_bb (gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_packet_headerparser_b.py b/gr-digital/python/digital/qa_packet_headerparser_b.py
index cf8e1e932e..2dca3637e3 100755
--- a/gr-digital/python/qa_packet_headerparser_b.py
+++ b/gr-digital/python/digital/qa_packet_headerparser_b.py
@@ -21,11 +21,10 @@
import time
import random
-from gnuradio import gr, gr_unittest
+
+from gnuradio import gr, gr_unittest, blocks, digital
+from gnuradio.digital import tagged_streams
import pmt
-import blocks_swig as blocks
-import digital_swig as digital
-from utils import tagged_streams
class qa_packet_headerparser_b (gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_pfb_clock_sync.py b/gr-digital/python/digital/qa_pfb_clock_sync.py
index 3db1fd5581..286953ab34 100755
--- a/gr-digital/python/qa_pfb_clock_sync.py
+++ b/gr-digital/python/digital/qa_pfb_clock_sync.py
@@ -20,11 +20,10 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import digital_swig as digital
-import blocks_swig as blocks
-import random, cmath
+import random
+import cmath
+
+from gnuradio import gr, gr_unittest, filter, digital, blocks
class test_pfb_clock_sync(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_pn_correlator_cc.py b/gr-digital/python/digital/qa_pn_correlator_cc.py
index 14d6bcfbe1..92041d9eda 100755
--- a/gr-digital/python/qa_pn_correlator_cc.py
+++ b/gr-digital/python/digital/qa_pn_correlator_cc.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, digital, blocks
class test_pn_correlator_cc(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_probe_density.py b/gr-digital/python/digital/qa_probe_density.py
index 45d651ec1c..752d95da3e 100755
--- a/gr-digital/python/qa_probe_density.py
+++ b/gr-digital/python/digital/qa_probe_density.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, digital, blocks
class test_probe_density(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_scrambler.py b/gr-digital/python/digital/qa_scrambler.py
index b4980e7816..05daebd389 100755
--- a/gr-digital/python/qa_scrambler.py
+++ b/gr-digital/python/digital/qa_scrambler.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, digital, blocks
class test_scrambler(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_simple_correlator.py b/gr-digital/python/digital/qa_simple_correlator.py
index 57312ff0dd..f39fb62dda 100755
--- a/gr-digital/python/qa_simple_correlator.py
+++ b/gr-digital/python/digital/qa_simple_correlator.py
@@ -20,10 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import blocks_swig as blocks
-import filter_swig as filter
-import digital_swig as digital
+from gnuradio import gr, gr_unittest, blocks, filter, digital
class test_simple_correlator(gr_unittest.TestCase):
diff --git a/gr-digital/python/qa_simple_framer.py b/gr-digital/python/digital/qa_simple_framer.py
index f598b393f2..cf9934648b 100755
--- a/gr-digital/python/qa_simple_framer.py
+++ b/gr-digital/python/digital/qa_simple_framer.py
@@ -20,10 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import digital_swig as digital
-import blocks_swig as blocks
-import math
+from gnuradio import gr, gr_unittest, digital, blocks
class test_simple_framer(gr_unittest.TestCase):
diff --git a/gr-digital/python/qam.py b/gr-digital/python/digital/qam.py
index 518be78941..518be78941 100644
--- a/gr-digital/python/qam.py
+++ b/gr-digital/python/digital/qam.py
diff --git a/gr-digital/python/qamlike.py b/gr-digital/python/digital/qamlike.py
index 2f8c855339..2f8c855339 100644
--- a/gr-digital/python/qamlike.py
+++ b/gr-digital/python/digital/qamlike.py
diff --git a/gr-digital/python/qpsk.py b/gr-digital/python/digital/qpsk.py
index 859d981367..859d981367 100644
--- a/gr-digital/python/qpsk.py
+++ b/gr-digital/python/digital/qpsk.py
diff --git a/gr-digital/python/utils/__init__.py b/gr-digital/python/digital/utils/__init__.py
index b3e997f9f8..b3e997f9f8 100644
--- a/gr-digital/python/utils/__init__.py
+++ b/gr-digital/python/digital/utils/__init__.py
diff --git a/gr-digital/python/utils/alignment.py b/gr-digital/python/digital/utils/alignment.py
index f3ad3781e2..f3ad3781e2 100644
--- a/gr-digital/python/utils/alignment.py
+++ b/gr-digital/python/digital/utils/alignment.py
diff --git a/gr-digital/python/utils/gray_code.py b/gr-digital/python/digital/utils/gray_code.py
index 926a1ded10..926a1ded10 100644
--- a/gr-digital/python/utils/gray_code.py
+++ b/gr-digital/python/digital/utils/gray_code.py
diff --git a/gr-digital/python/utils/mod_codes.py b/gr-digital/python/digital/utils/mod_codes.py
index f55fe41b8b..f55fe41b8b 100644
--- a/gr-digital/python/utils/mod_codes.py
+++ b/gr-digital/python/digital/utils/mod_codes.py
diff --git a/gr-digital/python/utils/tagged_streams.py b/gr-digital/python/digital/utils/tagged_streams.py
index c7edbf61eb..c7edbf61eb 100644
--- a/gr-digital/python/utils/tagged_streams.py
+++ b/gr-digital/python/digital/utils/tagged_streams.py
diff --git a/gr-fcd/CMakeLists.txt b/gr-fcd/CMakeLists.txt
index ebf7ba97b3..76972ef6e0 100644
--- a/gr-fcd/CMakeLists.txt
+++ b/gr-fcd/CMakeLists.txt
@@ -107,7 +107,7 @@ add_subdirectory(include/gnuradio/fcd)
add_subdirectory(lib)
if(ENABLE_PYTHON)
add_subdirectory(swig)
- add_subdirectory(python)
+ add_subdirectory(python/fcd)
add_subdirectory(grc)
add_subdirectory(examples/grc)
endif(ENABLE_PYTHON)
diff --git a/gr-fcd/python/CMakeLists.txt b/gr-fcd/python/fcd/CMakeLists.txt
index 39ec5efe9e..7fe226a0f7 100644
--- a/gr-fcd/python/CMakeLists.txt
+++ b/gr-fcd/python/fcd/CMakeLists.txt
@@ -32,16 +32,17 @@ GR_PYTHON_INSTALL(
########################################################################
if(ENABLE_TESTING)
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-fcd/python
- ${CMAKE_BINARY_DIR}/gr-fcd/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-audio gnuradio-fcd)
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-fcd/python/__init__.py b/gr-fcd/python/fcd/__init__.py
index 559c4f407e..e7cd7f40ed 100644
--- a/gr-fcd/python/__init__.py
+++ b/gr-fcd/python/fcd/__init__.py
@@ -22,6 +22,12 @@
'''
Provides a source block for the FunCube Dongle hardware.
'''
+import os
-from fcd_swig import *
+try:
+ from fcd_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from fcd_swig import *
diff --git a/gr-fcd/python/qa_fcd.py b/gr-fcd/python/fcd/qa_fcd.py
index 0993cab425..33771be5ff 100755
--- a/gr-fcd/python/qa_fcd.py
+++ b/gr-fcd/python/fcd/qa_fcd.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import fcd_swig
+from gnuradio import gr, gr_unittest, fcd
class test_fcd(gr_unittest.TestCase):
diff --git a/gr-fcd/python/run_tests.in b/gr-fcd/python/fcd/run_tests.in
index 4d28c1522d..4d28c1522d 100644
--- a/gr-fcd/python/run_tests.in
+++ b/gr-fcd/python/fcd/run_tests.in
diff --git a/gr-fft/CMakeLists.txt b/gr-fft/CMakeLists.txt
index 6bd08b257a..586abe56af 100644
--- a/gr-fft/CMakeLists.txt
+++ b/gr-fft/CMakeLists.txt
@@ -88,7 +88,7 @@ add_subdirectory(include/gnuradio/fft)
add_subdirectory(lib)
if(ENABLE_PYTHON)
add_subdirectory(swig)
- add_subdirectory(python)
+ add_subdirectory(python/fft)
add_subdirectory(grc)
endif(ENABLE_PYTHON)
#add_subdirectory(examples)
diff --git a/gr-fft/python/CMakeLists.txt b/gr-fft/python/fft/CMakeLists.txt
index 415d87e2e8..2ffa3ee3c3 100644
--- a/gr-fft/python/CMakeLists.txt
+++ b/gr-fft/python/fft/CMakeLists.txt
@@ -33,19 +33,16 @@ GR_PYTHON_INSTALL(
# Handle the unit tests
########################################################################
if(ENABLE_TESTING)
-
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-fft/python
- ${CMAKE_BINARY_DIR}/gr-fft/swig
- ${CMAKE_BINARY_DIR}/gr-blocks/python
- ${CMAKE_BINARY_DIR}/gr-blocks/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-fft)
-
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-fft/python/__init__.py b/gr-fft/python/fft/__init__.py
index 6d75757a05..e0803cbf38 100644
--- a/gr-fft/python/__init__.py
+++ b/gr-fft/python/fft/__init__.py
@@ -22,6 +22,13 @@
'''
Fourier-transform blocks and related functions.
'''
+import os
+
+try:
+ from fft_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from fft_swig import *
-from fft_swig import *
from window import *
diff --git a/gr-fft/python/logpwrfft.py b/gr-fft/python/fft/logpwrfft.py
index 98303b1e1e..98303b1e1e 100644
--- a/gr-fft/python/logpwrfft.py
+++ b/gr-fft/python/fft/logpwrfft.py
diff --git a/gr-fft/python/qa_fft.py b/gr-fft/python/fft/qa_fft.py
index c90eea69c5..3c7aa995e4 100755
--- a/gr-fft/python/qa_fft.py
+++ b/gr-fft/python/fft/qa_fft.py
@@ -19,12 +19,11 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
-from gnuradio import gr, gr_unittest
-import fft_swig as fft
-import blocks_swig as blocks
import sys
import random
+from gnuradio import gr, gr_unittest, fft, blocks
+
primes = (2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,
59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,
137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,
diff --git a/gr-fft/python/qa_goertzel.py b/gr-fft/python/fft/qa_goertzel.py
index 33f1413b6d..c2c5c565e7 100755
--- a/gr-fft/python/qa_goertzel.py
+++ b/gr-fft/python/fft/qa_goertzel.py
@@ -20,10 +20,9 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
from math import pi, cos
-import fft_swig as fft
-import blocks_swig as blocks
+
+from gnuradio import gr, gr_unittest, fft, blocks
class test_goertzel(gr_unittest.TestCase):
diff --git a/gr-fft/python/window.py b/gr-fft/python/fft/window.py
index 0065a08a61..0065a08a61 100644
--- a/gr-fft/python/window.py
+++ b/gr-fft/python/fft/window.py
diff --git a/gr-filter/CMakeLists.txt b/gr-filter/CMakeLists.txt
index f9f1f39461..6be2a9bf04 100644
--- a/gr-filter/CMakeLists.txt
+++ b/gr-filter/CMakeLists.txt
@@ -95,9 +95,9 @@ add_subdirectory(include/gnuradio/filter)
add_subdirectory(lib)
if(ENABLE_PYTHON)
add_subdirectory(swig)
- add_subdirectory(python)
- add_subdirectory(python/design)
- add_subdirectory(python/gui)
+ add_subdirectory(python/filter)
+ add_subdirectory(python/filter/design)
+ add_subdirectory(python/filter/gui)
add_subdirectory(grc)
add_subdirectory(apps)
endif(ENABLE_PYTHON)
diff --git a/gr-filter/python/CMakeLists.txt b/gr-filter/python/filter/CMakeLists.txt
index 1ef5b35641..b7b5812037 100644
--- a/gr-filter/python/CMakeLists.txt
+++ b/gr-filter/python/filter/CMakeLists.txt
@@ -35,19 +35,18 @@ GR_PYTHON_INSTALL(
# Handle the unit tests
########################################################################
if(ENABLE_TESTING)
-
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-filter/python
- ${CMAKE_BINARY_DIR}/gr-filter/swig
- ${CMAKE_BINARY_DIR}/gr-blocks/python
- ${CMAKE_BINARY_DIR}/gr-blocks/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-filter gnuradio-fft)
-
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
+
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-filter/python/__init__.py b/gr-filter/python/filter/__init__.py
index 09279ff908..80dc4228cb 100644
--- a/gr-filter/python/__init__.py
+++ b/gr-filter/python/filter/__init__.py
@@ -22,8 +22,14 @@
'''
Filter blocks and related functions.
'''
+import os
-from filter_swig import *
+try:
+ from filter_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from filter_swig import *
from filterbank import *
from rational_resampler import *
import pfb
diff --git a/gr-filter/python/design/CMakeLists.txt b/gr-filter/python/filter/design/CMakeLists.txt
index 21e47b86d6..21e47b86d6 100644
--- a/gr-filter/python/design/CMakeLists.txt
+++ b/gr-filter/python/filter/design/CMakeLists.txt
diff --git a/gr-filter/python/design/api_object.py b/gr-filter/python/filter/design/api_object.py
index 8e3687d37e..8e3687d37e 100644
--- a/gr-filter/python/design/api_object.py
+++ b/gr-filter/python/filter/design/api_object.py
diff --git a/gr-filter/python/design/filter_design.py b/gr-filter/python/filter/design/filter_design.py
index 748a435c63..748a435c63 100644
--- a/gr-filter/python/design/filter_design.py
+++ b/gr-filter/python/filter/design/filter_design.py
diff --git a/gr-filter/python/design/fir_design.py b/gr-filter/python/filter/design/fir_design.py
index 494cda3723..494cda3723 100644
--- a/gr-filter/python/design/fir_design.py
+++ b/gr-filter/python/filter/design/fir_design.py
diff --git a/gr-filter/python/filterbank.py b/gr-filter/python/filter/filterbank.py
index a8ee27ce97..a8ee27ce97 100644
--- a/gr-filter/python/filterbank.py
+++ b/gr-filter/python/filter/filterbank.py
diff --git a/gr-filter/python/gui/CMakeLists.txt b/gr-filter/python/filter/gui/CMakeLists.txt
index 6c9bbfa2f3..6c9bbfa2f3 100644
--- a/gr-filter/python/gui/CMakeLists.txt
+++ b/gr-filter/python/filter/gui/CMakeLists.txt
diff --git a/gr-filter/python/gui/bandgraphicsview.py b/gr-filter/python/filter/gui/bandgraphicsview.py
index 9e609fe2ac..9e609fe2ac 100644
--- a/gr-filter/python/gui/bandgraphicsview.py
+++ b/gr-filter/python/filter/gui/bandgraphicsview.py
diff --git a/gr-filter/python/gui/banditems.py b/gr-filter/python/filter/gui/banditems.py
index 9a6158fcfb..9a6158fcfb 100644
--- a/gr-filter/python/gui/banditems.py
+++ b/gr-filter/python/filter/gui/banditems.py
diff --git a/gr-filter/python/gui/icons.qrc b/gr-filter/python/filter/gui/icons.qrc
index 828d89d6aa..828d89d6aa 100644
--- a/gr-filter/python/gui/icons.qrc
+++ b/gr-filter/python/filter/gui/icons.qrc
diff --git a/gr-filter/python/gui/icons/add_pole.svg b/gr-filter/python/filter/gui/icons/add_pole.svg
index f5cf3370d7..f5cf3370d7 100644
--- a/gr-filter/python/gui/icons/add_pole.svg
+++ b/gr-filter/python/filter/gui/icons/add_pole.svg
diff --git a/gr-filter/python/gui/icons/add_zero.svg b/gr-filter/python/filter/gui/icons/add_zero.svg
index 34a435d667..34a435d667 100644
--- a/gr-filter/python/gui/icons/add_zero.svg
+++ b/gr-filter/python/filter/gui/icons/add_zero.svg
diff --git a/gr-filter/python/gui/icons/conjugate.svg b/gr-filter/python/filter/gui/icons/conjugate.svg
index f543d03987..f543d03987 100644
--- a/gr-filter/python/gui/icons/conjugate.svg
+++ b/gr-filter/python/filter/gui/icons/conjugate.svg
diff --git a/gr-filter/python/gui/icons/filtr_taps.svg b/gr-filter/python/filter/gui/icons/filtr_taps.svg
index 103b113c48..103b113c48 100644
--- a/gr-filter/python/gui/icons/filtr_taps.svg
+++ b/gr-filter/python/filter/gui/icons/filtr_taps.svg
diff --git a/gr-filter/python/gui/icons/group_delay.svg b/gr-filter/python/filter/gui/icons/group_delay.svg
index 21eb1727bb..21eb1727bb 100644
--- a/gr-filter/python/gui/icons/group_delay.svg
+++ b/gr-filter/python/filter/gui/icons/group_delay.svg
diff --git a/gr-filter/python/gui/icons/impulse.svg b/gr-filter/python/filter/gui/icons/impulse.svg
index 10e3718dd4..10e3718dd4 100644
--- a/gr-filter/python/gui/icons/impulse.svg
+++ b/gr-filter/python/filter/gui/icons/impulse.svg
diff --git a/gr-filter/python/gui/icons/impulse_response.svg b/gr-filter/python/filter/gui/icons/impulse_response.svg
index 28a84d02e4..28a84d02e4 100644
--- a/gr-filter/python/gui/icons/impulse_response.svg
+++ b/gr-filter/python/filter/gui/icons/impulse_response.svg
diff --git a/gr-filter/python/gui/icons/mag_response.svg b/gr-filter/python/filter/gui/icons/mag_response.svg
index 8aa2eeca08..8aa2eeca08 100644
--- a/gr-filter/python/gui/icons/mag_response.svg
+++ b/gr-filter/python/filter/gui/icons/mag_response.svg
diff --git a/gr-filter/python/gui/icons/overlay.svg b/gr-filter/python/filter/gui/icons/overlay.svg
index 64def7f5eb..64def7f5eb 100644
--- a/gr-filter/python/gui/icons/overlay.svg
+++ b/gr-filter/python/filter/gui/icons/overlay.svg
diff --git a/gr-filter/python/gui/icons/phase_delay.svg b/gr-filter/python/filter/gui/icons/phase_delay.svg
index fa89068338..fa89068338 100644
--- a/gr-filter/python/gui/icons/phase_delay.svg
+++ b/gr-filter/python/filter/gui/icons/phase_delay.svg
diff --git a/gr-filter/python/gui/icons/phase_response.svg b/gr-filter/python/filter/gui/icons/phase_response.svg
index e6a6c0e5b0..e6a6c0e5b0 100644
--- a/gr-filter/python/gui/icons/phase_response.svg
+++ b/gr-filter/python/filter/gui/icons/phase_response.svg
diff --git a/gr-filter/python/gui/icons/remove_red.svg b/gr-filter/python/filter/gui/icons/remove_red.svg
index d42cc71489..d42cc71489 100644
--- a/gr-filter/python/gui/icons/remove_red.svg
+++ b/gr-filter/python/filter/gui/icons/remove_red.svg
diff --git a/gr-filter/python/gui/icons/step_response.svg b/gr-filter/python/filter/gui/icons/step_response.svg
index 089b699dff..089b699dff 100644
--- a/gr-filter/python/gui/icons/step_response.svg
+++ b/gr-filter/python/filter/gui/icons/step_response.svg
diff --git a/gr-filter/python/gui/icons_rc.py b/gr-filter/python/filter/gui/icons_rc.py
index 0b20ecb612..0b20ecb612 100644
--- a/gr-filter/python/gui/icons_rc.py
+++ b/gr-filter/python/filter/gui/icons_rc.py
diff --git a/gr-filter/python/gui/idealbanditems.py b/gr-filter/python/filter/gui/idealbanditems.py
index b0c0497e38..b0c0497e38 100644
--- a/gr-filter/python/gui/idealbanditems.py
+++ b/gr-filter/python/filter/gui/idealbanditems.py
diff --git a/gr-filter/python/gui/polezero_plot.py b/gr-filter/python/filter/gui/polezero_plot.py
index 0115339e5e..0115339e5e 100644
--- a/gr-filter/python/gui/polezero_plot.py
+++ b/gr-filter/python/filter/gui/polezero_plot.py
diff --git a/gr-filter/python/gui/pyqt_filter_stacked.py b/gr-filter/python/filter/gui/pyqt_filter_stacked.py
index 98836180e7..98836180e7 100644
--- a/gr-filter/python/gui/pyqt_filter_stacked.py
+++ b/gr-filter/python/filter/gui/pyqt_filter_stacked.py
diff --git a/gr-filter/python/gui/pyqt_filter_stacked.ui b/gr-filter/python/filter/gui/pyqt_filter_stacked.ui
index 7aecf62508..7aecf62508 100644
--- a/gr-filter/python/gui/pyqt_filter_stacked.ui
+++ b/gr-filter/python/filter/gui/pyqt_filter_stacked.ui
diff --git a/gr-filter/python/optfir.py b/gr-filter/python/filter/optfir.py
index 47b0ac4e8d..47b0ac4e8d 100644
--- a/gr-filter/python/optfir.py
+++ b/gr-filter/python/filter/optfir.py
diff --git a/gr-filter/python/pfb.py b/gr-filter/python/filter/pfb.py
index 52f598cc40..52f598cc40 100644
--- a/gr-filter/python/pfb.py
+++ b/gr-filter/python/filter/pfb.py
diff --git a/gr-filter/python/qa_adaptive_fir_filter.py b/gr-filter/python/filter/qa_adaptive_fir_filter.py
index e8233f76ae..9ed5e7bab2 100755
--- a/gr-filter/python/qa_adaptive_fir_filter.py
+++ b/gr-filter/python/filter/qa_adaptive_fir_filter.py
@@ -19,9 +19,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
class test_adaptive_filter(gr_unittest.TestCase):
diff --git a/gr-filter/python/qa_dc_blocker.py b/gr-filter/python/filter/qa_dc_blocker.py
index 29a05fb550..66a69760de 100755
--- a/gr-filter/python/qa_dc_blocker.py
+++ b/gr-filter/python/filter/qa_dc_blocker.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
class test_dc_blocker(gr_unittest.TestCase):
diff --git a/gr-filter/python/qa_fft_filter.py b/gr-filter/python/filter/qa_fft_filter.py
index 9e0008d7c6..fafd2330ae 100755
--- a/gr-filter/python/qa_fft_filter.py
+++ b/gr-filter/python/filter/qa_fft_filter.py
@@ -20,9 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
+
import sys
import random
diff --git a/gr-filter/python/qa_filter_delay_fc.py b/gr-filter/python/filter/qa_filter_delay_fc.py
index 9ec1d9d582..ce1205d846 100755
--- a/gr-filter/python/qa_filter_delay_fc.py
+++ b/gr-filter/python/filter/qa_filter_delay_fc.py
@@ -20,9 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
+
import math
def sin_source_f(samp_rate, freq, amp, N):
diff --git a/gr-filter/python/qa_fir_filter.py b/gr-filter/python/filter/qa_fir_filter.py
index 64e60ab295..e9cc8e27ec 100755
--- a/gr-filter/python/qa_fir_filter.py
+++ b/gr-filter/python/filter/qa_fir_filter.py
@@ -19,9 +19,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
class test_filter(gr_unittest.TestCase):
diff --git a/gr-filter/python/qa_firdes.py b/gr-filter/python/filter/qa_firdes.py
index cfd10435f5..82397b985f 100755
--- a/gr-filter/python/qa_firdes.py
+++ b/gr-filter/python/filter/qa_firdes.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
+from gnuradio import gr, gr_unittest, filter
import sys
class test_firdes(gr_unittest.TestCase):
diff --git a/gr-filter/python/qa_fractional_interpolator.py b/gr-filter/python/filter/qa_fractional_interpolator.py
index 177458a47a..42d68886b8 100755
--- a/gr-filter/python/qa_fractional_interpolator.py
+++ b/gr-filter/python/filter/qa_fractional_interpolator.py
@@ -20,9 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
+
import math
def sig_source_f(samp_rate, freq, amp, N):
diff --git a/gr-filter/python/qa_freq_xlating_fir_filter.py b/gr-filter/python/filter/qa_freq_xlating_fir_filter.py
index 6fdff372af..27c5d58f4f 100755
--- a/gr-filter/python/qa_freq_xlating_fir_filter.py
+++ b/gr-filter/python/filter/qa_freq_xlating_fir_filter.py
@@ -19,9 +19,8 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
+
import cmath, math
class test_freq_xlating_filter(gr_unittest.TestCase):
diff --git a/gr-filter/python/qa_hilbert.py b/gr-filter/python/filter/qa_hilbert.py
index 9af77e8314..d603b9e39f 100755
--- a/gr-filter/python/qa_hilbert.py
+++ b/gr-filter/python/filter/qa_hilbert.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
import math
def sig_source_f(samp_rate, freq, amp, N):
diff --git a/gr-filter/python/qa_iir_filter.py b/gr-filter/python/filter/qa_iir_filter.py
index e341a74c03..cd66e82b69 100755
--- a/gr-filter/python/qa_iir_filter.py
+++ b/gr-filter/python/filter/qa_iir_filter.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
class test_iir_filter(gr_unittest.TestCase):
diff --git a/gr-filter/python/qa_interp_fir_filter.py b/gr-filter/python/filter/qa_interp_fir_filter.py
index 243ac7fac6..089d08307d 100755
--- a/gr-filter/python/qa_interp_fir_filter.py
+++ b/gr-filter/python/filter/qa_interp_fir_filter.py
@@ -20,9 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
+
import math
class test_interp_fir_filter(gr_unittest.TestCase):
diff --git a/gr-filter/python/qa_pfb_arb_resampler.py b/gr-filter/python/filter/qa_pfb_arb_resampler.py
index 504fc815ce..d97426bcaa 100755
--- a/gr-filter/python/qa_pfb_arb_resampler.py
+++ b/gr-filter/python/filter/qa_pfb_arb_resampler.py
@@ -20,9 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
+
import math
def sig_source_c(samp_rate, freq, amp, N):
diff --git a/gr-filter/python/qa_pfb_channelizer.py b/gr-filter/python/filter/qa_pfb_channelizer.py
index 472aa5a73c..fcabbaefcc 100755
--- a/gr-filter/python/qa_pfb_channelizer.py
+++ b/gr-filter/python/filter/qa_pfb_channelizer.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
import math
def sig_source_c(samp_rate, freq, amp, N):
diff --git a/gr-filter/python/qa_pfb_decimator.py b/gr-filter/python/filter/qa_pfb_decimator.py
index 783be05486..8cc068e79e 100755
--- a/gr-filter/python/qa_pfb_decimator.py
+++ b/gr-filter/python/filter/qa_pfb_decimator.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
import math
def sig_source_c(samp_rate, freq, amp, N):
diff --git a/gr-filter/python/qa_pfb_interpolator.py b/gr-filter/python/filter/qa_pfb_interpolator.py
index 6788dbf203..72856c6984 100755
--- a/gr-filter/python/qa_pfb_interpolator.py
+++ b/gr-filter/python/filter/qa_pfb_interpolator.py
@@ -20,9 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
+
import math
def sig_source_c(samp_rate, freq, amp, N):
diff --git a/gr-filter/python/qa_pfb_synthesizer.py b/gr-filter/python/filter/qa_pfb_synthesizer.py
index aa3c697b93..baba904088 100755
--- a/gr-filter/python/qa_pfb_synthesizer.py
+++ b/gr-filter/python/filter/qa_pfb_synthesizer.py
@@ -20,9 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
+
import math
def sig_source_c(samp_rate, freq, amp, N):
diff --git a/gr-filter/python/qa_pm_remez.py b/gr-filter/python/filter/qa_pm_remez.py
index a76e14c938..af85f9eedf 100755
--- a/gr-filter/python/qa_pm_remez.py
+++ b/gr-filter/python/filter/qa_pm_remez.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
+from gnuradio import gr, gr_unittest, filter
import sys, math
# ----------------------------------------------------------------
diff --git a/gr-filter/python/qa_rational_resampler.py b/gr-filter/python/filter/qa_rational_resampler.py
index 76930ba052..3dbe636035 100755
--- a/gr-filter/python/qa_rational_resampler.py
+++ b/gr-filter/python/filter/qa_rational_resampler.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
import math
import random
import sys
diff --git a/gr-filter/python/qa_single_pole_iir.py b/gr-filter/python/filter/qa_single_pole_iir.py
index bc2d54c959..5ca9bcdb45 100755
--- a/gr-filter/python/qa_single_pole_iir.py
+++ b/gr-filter/python/filter/qa_single_pole_iir.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import filter_swig as filter
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, filter, blocks
class test_single_pole_iir_filter(gr_unittest.TestCase):
diff --git a/gr-filter/python/rational_resampler.py b/gr-filter/python/filter/rational_resampler.py
index 8f1dc36e0d..8f1dc36e0d 100644
--- a/gr-filter/python/rational_resampler.py
+++ b/gr-filter/python/filter/rational_resampler.py
diff --git a/gr-noaa/CMakeLists.txt b/gr-noaa/CMakeLists.txt
index 966d32c8db..d4fe53ecf1 100644
--- a/gr-noaa/CMakeLists.txt
+++ b/gr-noaa/CMakeLists.txt
@@ -89,7 +89,7 @@ add_subdirectory(include/gnuradio/noaa)
add_subdirectory(lib)
if(ENABLE_PYTHON)
add_subdirectory(swig)
- add_subdirectory(python)
+ add_subdirectory(python/noaa)
add_subdirectory(grc)
add_subdirectory(examples)
endif(ENABLE_PYTHON)
diff --git a/gr-noaa/python/CMakeLists.txt b/gr-noaa/python/noaa/CMakeLists.txt
index 306b8d981b..79c7b712cd 100644
--- a/gr-noaa/python/CMakeLists.txt
+++ b/gr-noaa/python/noaa/CMakeLists.txt
@@ -34,17 +34,17 @@ GR_PYTHON_INSTALL(
########################################################################
if(ENABLE_TESTING)
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-noaa/python
- ${CMAKE_BINARY_DIR}/gr-noaa/swig
-)
-
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-noaa)
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-noaa/python/__init__.py b/gr-noaa/python/noaa/__init__.py
index 646120c83e..9192d2291e 100644
--- a/gr-noaa/python/__init__.py
+++ b/gr-noaa/python/noaa/__init__.py
@@ -24,4 +24,11 @@ Blocks and utilities for NOAA app.
# The presence of this file turns this directory into a Python package
-from noaa_swig import *
+import os
+
+try:
+ from noaa_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from noaa_swig import *
diff --git a/gr-noaa/python/qa_noaa.py b/gr-noaa/python/noaa/qa_noaa.py
index e55debd771..9b00f6a269 100755
--- a/gr-noaa/python/qa_noaa.py
+++ b/gr-noaa/python/noaa/qa_noaa.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import noaa_swig as noaa
+from gnuradio import gr, gr_unittest, noaa
class test_noaa(gr_unittest.TestCase):
diff --git a/gr-pager/CMakeLists.txt b/gr-pager/CMakeLists.txt
index 04c7e2c504..d699b06ef6 100644
--- a/gr-pager/CMakeLists.txt
+++ b/gr-pager/CMakeLists.txt
@@ -94,7 +94,7 @@ CPACK_COMPONENT("pager_swig"
add_subdirectory(include/gnuradio/pager)
add_subdirectory(lib)
if(ENABLE_PYTHON)
- add_subdirectory(python)
+ add_subdirectory(python/pager)
add_subdirectory(swig)
add_subdirectory(grc)
add_subdirectory(apps)
diff --git a/gr-pager/python/CMakeLists.txt b/gr-pager/python/pager/CMakeLists.txt
index 30ac0364d7..c93573c2ad 100644
--- a/gr-pager/python/CMakeLists.txt
+++ b/gr-pager/python/pager/CMakeLists.txt
@@ -34,16 +34,17 @@ GR_PYTHON_INSTALL(
########################################################################
if(ENABLE_TESTING)
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-pager/python
- ${CMAKE_BINARY_DIR}/gr-pager/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-pager)
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-pager/python/__init__.py b/gr-pager/python/pager/__init__.py
index c395d4e458..ea4856fad6 100644
--- a/gr-pager/python/__init__.py
+++ b/gr-pager/python/pager/__init__.py
@@ -24,7 +24,14 @@
'''
The GNU Radio pager application.
'''
+import os
+
+try:
+ from pager_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from pager_swig import *
-from pager_swig import *
from flex_demod import flex_demod
from pager_utils import *
diff --git a/gr-pager/python/flex_demod.py b/gr-pager/python/pager/flex_demod.py
index 3ed469886c..3ed469886c 100644
--- a/gr-pager/python/flex_demod.py
+++ b/gr-pager/python/pager/flex_demod.py
diff --git a/gr-pager/python/pager_utils.py b/gr-pager/python/pager/pager_utils.py
index e935c86d4b..e935c86d4b 100644
--- a/gr-pager/python/pager_utils.py
+++ b/gr-pager/python/pager/pager_utils.py
diff --git a/gr-pager/python/qa_pager.py b/gr-pager/python/pager/qa_pager.py
index e07291966f..dc9705e292 100755
--- a/gr-pager/python/qa_pager.py
+++ b/gr-pager/python/pager/qa_pager.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import pager_swig as pager
+from gnuradio import gr, gr_unittest, pager
class test_pager(gr_unittest.TestCase):
diff --git a/gr-qtgui/CMakeLists.txt b/gr-qtgui/CMakeLists.txt
index 19a31c5f02..b3a0271b44 100644
--- a/gr-qtgui/CMakeLists.txt
+++ b/gr-qtgui/CMakeLists.txt
@@ -113,7 +113,7 @@ add_subdirectory(doc)
if(ENABLE_PYTHON)
add_subdirectory(grc)
add_subdirectory(swig)
- add_subdirectory(python)
+ add_subdirectory(python/qtgui)
add_subdirectory(examples)
add_subdirectory(apps)
endif(ENABLE_PYTHON)
diff --git a/gr-qtgui/python/CMakeLists.txt b/gr-qtgui/python/qtgui/CMakeLists.txt
index 5822858082..aa398ca662 100644
--- a/gr-qtgui/python/CMakeLists.txt
+++ b/gr-qtgui/python/qtgui/CMakeLists.txt
@@ -31,16 +31,17 @@ GR_PYTHON_INSTALL(
########################################################################
if(ENABLE_TESTING)
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-qtgui/python
- ${CMAKE_BINARY_DIR}/gr-qtgui/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-qtgui)
-
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
+
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-qtgui/python/__init__.py b/gr-qtgui/python/qtgui/__init__.py
index 25ff1f4dc7..e9aeea7a86 100644
--- a/gr-qtgui/python/__init__.py
+++ b/gr-qtgui/python/qtgui/__init__.py
@@ -24,6 +24,11 @@ Provides a GUI interface using the QT backend.
'''
# The presence of this file turns this directory into a Python package
+import os
-from qtgui_swig import *
-#import qtgui_swig as qtgui # to preserve the old interface
+try:
+ from qtgui_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from qtgui_swig import *
diff --git a/gr-qtgui/python/qa_qtgui.py b/gr-qtgui/python/qtgui/qa_qtgui.py
index 0761ed3be9..51c0727de4 100755
--- a/gr-qtgui/python/qa_qtgui.py
+++ b/gr-qtgui/python/qtgui/qa_qtgui.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import qtgui_swig as qtgui
+from gnuradio import gr, gr_unittest, qtgui
class test_qtgui(gr_unittest.TestCase):
diff --git a/gr-trellis/CMakeLists.txt b/gr-trellis/CMakeLists.txt
index d7c317b755..a3f0ad486c 100644
--- a/gr-trellis/CMakeLists.txt
+++ b/gr-trellis/CMakeLists.txt
@@ -105,7 +105,7 @@ add_subdirectory(lib)
add_subdirectory(doc)
if(ENABLE_PYTHON)
add_subdirectory(swig)
- add_subdirectory(python)
+ add_subdirectory(python/trellis)
add_subdirectory(examples/python)
add_subdirectory(examples/grc)
add_subdirectory(grc)
diff --git a/gr-trellis/python/CMakeLists.txt b/gr-trellis/python/CMakeLists.txt
deleted file mode 100644
index a166764fbe..0000000000
--- a/gr-trellis/python/CMakeLists.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 2011-2012 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-
-########################################################################
-# Setup python install
-########################################################################
-include(GrPython)
-
-GR_PYTHON_INSTALL(
- FILES
- __init__.py
- DESTINATION ${GR_PYTHON_DIR}/gnuradio/trellis
- COMPONENT "trellis_python"
-)
-
-########################################################################
-# Handle the unit tests
-########################################################################
-if(ENABLE_TESTING)
-
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-trellis/python
- ${CMAKE_BINARY_DIR}/gr-trellis/swig
- ${CMAKE_BINARY_DIR}/gr-blocks/python
- ${CMAKE_BINARY_DIR}/gr-blocks/swig
- ${CMAKE_BINARY_DIR}/gr-filter/python
- ${CMAKE_BINARY_DIR}/gr-filter/swig
- ${CMAKE_BINARY_DIR}/gr-analog/python
- ${CMAKE_BINARY_DIR}/gr-analog/swig
- ${CMAKE_BINARY_DIR}/gr-digital/python
- ${CMAKE_BINARY_DIR}/gr-digital/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-trellis gnuradio-digital gnuradio-analog gnuradio-filter)
-
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
- get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
- GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
-endif(ENABLE_TESTING)
diff --git a/gr-trellis/python/trellis/CMakeLists.txt b/gr-trellis/python/trellis/CMakeLists.txt
new file mode 100644
index 0000000000..b009c2684b
--- /dev/null
+++ b/gr-trellis/python/trellis/CMakeLists.txt
@@ -0,0 +1,50 @@
+# Copyright 2011-2012 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+
+########################################################################
+# Setup python install
+########################################################################
+include(GrPython)
+
+GR_PYTHON_INSTALL(
+ FILES
+ __init__.py
+ DESTINATION ${GR_PYTHON_DIR}/gnuradio/trellis
+ COMPONENT "trellis_python"
+)
+
+########################################################################
+# Handle the unit tests
+########################################################################
+if(ENABLE_TESTING)
+
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
+
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
+ get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
+ GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
+ endforeach(py_qa_test_file)
+endif(ENABLE_TESTING)
diff --git a/gr-trellis/python/__init__.py b/gr-trellis/python/trellis/__init__.py
index a1792bc9b4..f2540e835f 100644
--- a/gr-trellis/python/__init__.py
+++ b/gr-trellis/python/trellis/__init__.py
@@ -23,5 +23,11 @@ Blocks and utilities for trellis coding and related.
'''
# The presence of this file turns this directory into a Python package
+import os
-from trellis_swig import *
+try:
+ from trellis_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from trellis_swig import *
diff --git a/gr-trellis/python/awgn1o2_4.fsm b/gr-trellis/python/trellis/awgn1o2_4.fsm
index 9245c69ac1..9245c69ac1 100644
--- a/gr-trellis/python/awgn1o2_4.fsm
+++ b/gr-trellis/python/trellis/awgn1o2_4.fsm
diff --git a/gr-trellis/python/qa_trellis.py b/gr-trellis/python/trellis/qa_trellis.py
index b0a2f8a745..86c740a730 100755
--- a/gr-trellis/python/qa_trellis.py
+++ b/gr-trellis/python/trellis/qa_trellis.py
@@ -23,12 +23,7 @@
import math
import os
-from gnuradio import gr, gr_unittest
-
-import trellis_swig as trellis
-import digital_swig as digital
-import analog_swig as analog
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, trellis, digital, analog, blocks
fsm_args = {"awgn1o2_4": (2, 4, 4,
(0, 2, 0, 2, 1, 3, 1, 3),
diff --git a/gr-video-sdl/CMakeLists.txt b/gr-video-sdl/CMakeLists.txt
index 82fab5c41e..21b017b2cc 100644
--- a/gr-video-sdl/CMakeLists.txt
+++ b/gr-video-sdl/CMakeLists.txt
@@ -85,7 +85,7 @@ add_subdirectory(include/gnuradio/video_sdl)
add_subdirectory(lib)
if(ENABLE_PYTHON)
add_subdirectory(swig)
- add_subdirectory(python)
+ add_subdirectory(python/video_sdl)
endif(ENABLE_PYTHON)
########################################################################
diff --git a/gr-video-sdl/python/CMakeLists.txt b/gr-video-sdl/python/video_sdl/CMakeLists.txt
index 5ad70c4c25..ddfe54838d 100644
--- a/gr-video-sdl/python/CMakeLists.txt
+++ b/gr-video-sdl/python/video_sdl/CMakeLists.txt
@@ -34,16 +34,17 @@ GR_PYTHON_INSTALL(
########################################################################
if(ENABLE_TESTING)
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-video-sdl/python
- ${CMAKE_BINARY_DIR}/gr-video-sdl/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-video-sdl)
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-video-sdl/python/__init__.py b/gr-video-sdl/python/video_sdl/__init__.py
index c029a82c2d..787e84ff08 100644
--- a/gr-video-sdl/python/__init__.py
+++ b/gr-video-sdl/python/video_sdl/__init__.py
@@ -23,5 +23,11 @@ Blocks and utilities for Video SDL module
'''
# The presence of this file turns this directory into a Python package
+import os
-from video_sdl_swig import *
+try:
+ from video_sdl_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from video_sdl_swig import *
diff --git a/gr-video-sdl/python/qa_video_sdl.py b/gr-video-sdl/python/video_sdl/qa_video_sdl.py
index 68c3185ef5..f94957ccc4 100755
--- a/gr-video-sdl/python/qa_video_sdl.py
+++ b/gr-video-sdl/python/video_sdl/qa_video_sdl.py
@@ -20,8 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import video_sdl_swig as video_sdl
+from gnuradio import gr, gr_unittest, video_sdl
class test_video_sdl (gr_unittest.TestCase):
diff --git a/gr-vocoder/CMakeLists.txt b/gr-vocoder/CMakeLists.txt
index bfaea7f12f..37c0cf70e9 100644
--- a/gr-vocoder/CMakeLists.txt
+++ b/gr-vocoder/CMakeLists.txt
@@ -96,7 +96,7 @@ add_subdirectory(lib)
add_subdirectory(doc)
if(ENABLE_PYTHON)
add_subdirectory(swig)
- add_subdirectory(python)
+ add_subdirectory(python/vocoder)
add_subdirectory(grc)
add_subdirectory(examples)
endif(ENABLE_PYTHON)
diff --git a/gr-vocoder/python/CMakeLists.txt b/gr-vocoder/python/vocoder/CMakeLists.txt
index 9fdc625280..689fddb178 100644
--- a/gr-vocoder/python/CMakeLists.txt
+++ b/gr-vocoder/python/vocoder/CMakeLists.txt
@@ -35,22 +35,17 @@ GR_PYTHON_INSTALL(
########################################################################
if(ENABLE_TESTING)
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-blocks/python
- ${CMAKE_BINARY_DIR}/gr-blocks/swig
- ${CMAKE_BINARY_DIR}/gr-filter/python
- ${CMAKE_BINARY_DIR}/gr-filter/swig
- ${CMAKE_BINARY_DIR}/gr-analog/python
- ${CMAKE_BINARY_DIR}/gr-analog/swig
- ${CMAKE_BINARY_DIR}/gr-vocoder/python
- ${CMAKE_BINARY_DIR}/gr-vocoder/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-vocoder)
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-vocoder/python/__init__.py b/gr-vocoder/python/vocoder/__init__.py
index ba5862f8d9..7b1b82f847 100644
--- a/gr-vocoder/python/__init__.py
+++ b/gr-vocoder/python/vocoder/__init__.py
@@ -23,6 +23,13 @@
This is the gr-vocoder package. This package includes the various
vocoder blocks in GNU Radio.
'''
+import os
+
+try:
+ from vocoder_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from vocoder_swig import *
-from vocoder_swig import *
from cvsd import *
diff --git a/gr-vocoder/python/cvsd.py b/gr-vocoder/python/vocoder/cvsd.py
index 1c58c33076..b6ce822935 100644
--- a/gr-vocoder/python/cvsd.py
+++ b/gr-vocoder/python/vocoder/cvsd.py
@@ -20,19 +20,9 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr
+from gnuradio import gr, filter, blocks
import vocoder_swig
-try:
- from gnuradio import filter
-except ImportError:
- import filter_swig as filter
-
-try:
- from gnuradio import blocks
-except ImportError:
- import blocks_swig as blocks
-
class cvsd_encode_fb(gr.hier_block2):
'''
This is a wrapper for the CVSD encoder that performs interpolation and filtering
diff --git a/gr-vocoder/python/qa_alaw_vocoder.py b/gr-vocoder/python/vocoder/qa_alaw_vocoder.py
index 50b5f8844a..3a49908e5a 100755
--- a/gr-vocoder/python/qa_alaw_vocoder.py
+++ b/gr-vocoder/python/vocoder/qa_alaw_vocoder.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import vocoder_swig as vocoder
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, vocoder, blocks
class test_alaw_vocoder (gr_unittest.TestCase):
diff --git a/gr-vocoder/python/qa_codec2_vocoder.py b/gr-vocoder/python/vocoder/qa_codec2_vocoder.py
index 83dbc2eb87..b2ed734888 100755
--- a/gr-vocoder/python/qa_codec2_vocoder.py
+++ b/gr-vocoder/python/vocoder/qa_codec2_vocoder.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import vocoder_swig as vocoder
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, vocoder, blocks
class test_codec2_vocoder (gr_unittest.TestCase):
diff --git a/gr-vocoder/python/qa_cvsd_vocoder.py b/gr-vocoder/python/vocoder/qa_cvsd_vocoder.py
index 548c877526..408c6b74c9 100755
--- a/gr-vocoder/python/qa_cvsd_vocoder.py
+++ b/gr-vocoder/python/vocoder/qa_cvsd_vocoder.py
@@ -20,11 +20,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import vocoder_swig as vocoder
-import cvsd
-import blocks_swig as blocks
-import filter_swig as filter
+from gnuradio import gr, gr_unittest, vocoder, blocks, filter
+from gnuradio.vocoder import cvsd
class test_cvsd_vocoder (gr_unittest.TestCase):
diff --git a/gr-vocoder/python/qa_g721_vocoder.py b/gr-vocoder/python/vocoder/qa_g721_vocoder.py
index ed53771076..8808b8fede 100755
--- a/gr-vocoder/python/qa_g721_vocoder.py
+++ b/gr-vocoder/python/vocoder/qa_g721_vocoder.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import vocoder_swig as vocoder
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, vocoder, blocks
class test_g721_vocoder (gr_unittest.TestCase):
diff --git a/gr-vocoder/python/qa_g723_24_vocoder.py b/gr-vocoder/python/vocoder/qa_g723_24_vocoder.py
index f473e85677..c587623e1d 100755
--- a/gr-vocoder/python/qa_g723_24_vocoder.py
+++ b/gr-vocoder/python/vocoder/qa_g723_24_vocoder.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import vocoder_swig as vocoder
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, vocoder, blocks
class test_g723_24_vocoder (gr_unittest.TestCase):
diff --git a/gr-vocoder/python/qa_g723_40_vocoder.py b/gr-vocoder/python/vocoder/qa_g723_40_vocoder.py
index e7ca4587b7..689102237f 100755
--- a/gr-vocoder/python/qa_g723_40_vocoder.py
+++ b/gr-vocoder/python/vocoder/qa_g723_40_vocoder.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import vocoder_swig as vocoder
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, vocoder, blocks
class test_g723_40_vocoder (gr_unittest.TestCase):
diff --git a/gr-vocoder/python/qa_gsm_full_rate.py b/gr-vocoder/python/vocoder/qa_gsm_full_rate.py
index a62781ea94..69ea94bbf9 100755
--- a/gr-vocoder/python/qa_gsm_full_rate.py
+++ b/gr-vocoder/python/vocoder/qa_gsm_full_rate.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import vocoder_swig as vocoder
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, vocoder, blocks
class test_gsm_vocoder (gr_unittest.TestCase):
diff --git a/gr-vocoder/python/qa_ulaw_vocoder.py b/gr-vocoder/python/vocoder/qa_ulaw_vocoder.py
index a030e065cc..46c8d490a8 100755
--- a/gr-vocoder/python/qa_ulaw_vocoder.py
+++ b/gr-vocoder/python/vocoder/qa_ulaw_vocoder.py
@@ -20,9 +20,7 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, gr_unittest
-import vocoder_swig as vocoder
-import blocks_swig as blocks
+from gnuradio import gr, gr_unittest, vocoder, blocks
class test_ulaw_vocoder (gr_unittest.TestCase):
diff --git a/gr-wavelet/CMakeLists.txt b/gr-wavelet/CMakeLists.txt
index df0dbb9709..bdc19a1ebc 100644
--- a/gr-wavelet/CMakeLists.txt
+++ b/gr-wavelet/CMakeLists.txt
@@ -88,7 +88,7 @@ add_subdirectory(include/gnuradio/wavelet)
add_subdirectory(lib)
if(ENABLE_PYTHON)
add_subdirectory(swig)
- add_subdirectory(python)
+ add_subdirectory(python/wavelet)
# add_subdirectory(grc)
endif(ENABLE_PYTHON)
#add_subdirectory(examples)
diff --git a/gr-wavelet/python/CMakeLists.txt b/gr-wavelet/python/wavelet/CMakeLists.txt
index 7f7fd99ecf..ae9d3dc794 100644
--- a/gr-wavelet/python/CMakeLists.txt
+++ b/gr-wavelet/python/wavelet/CMakeLists.txt
@@ -32,20 +32,17 @@ GR_PYTHON_INSTALL(
########################################################################
if(ENABLE_TESTING)
-list(APPEND GR_TEST_PYTHON_DIRS
- ${CMAKE_BINARY_DIR}/gr-analog/python
- ${CMAKE_BINARY_DIR}/gr-analog/swig
- ${CMAKE_BINARY_DIR}/gr-wavelet/python
- ${CMAKE_BINARY_DIR}/gr-wavelet/swig
- ${CMAKE_BINARY_DIR}/gr-blocks/python
- ${CMAKE_BINARY_DIR}/gr-blocks/swig
-)
-list(APPEND GR_TEST_TARGET_DEPS gnuradio-wavelet)
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ ${CMAKE_BINARY_DIR}/gnuradio-core/src/python
+ )
-include(GrTest)
-file(GLOB py_qa_test_files "qa_*.py")
-foreach(py_qa_test_file ${py_qa_test_files})
+ include(GrTest)
+ file(GLOB py_qa_test_files "qa_*.py")
+ foreach(py_qa_test_file ${py_qa_test_files})
get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
-endforeach(py_qa_test_file)
+ endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
diff --git a/gr-wavelet/python/__init__.py b/gr-wavelet/python/wavelet/__init__.py
index cf86408e95..7f3d9afa53 100644
--- a/gr-wavelet/python/__init__.py
+++ b/gr-wavelet/python/wavelet/__init__.py
@@ -22,6 +22,11 @@
'''
Processing blocks for wavelet transforms.
'''
+import os
-from wavelet_swig import *
-
+try:
+ from wavelet_swig import *
+except ImportError:
+ dirname, filename = os.path.split(os.path.abspath(__file__))
+ __path__.append(os.path.join(dirname, "..", "..", "swig"))
+ from wavelet_swig import *
diff --git a/gr-wavelet/python/qa_classify.py b/gr-wavelet/python/wavelet/qa_classify.py
index 8dfc6ca5f9..4752620f4d 100755
--- a/gr-wavelet/python/qa_classify.py
+++ b/gr-wavelet/python/wavelet/qa_classify.py
@@ -21,13 +21,10 @@
#
import numpy
-from gnuradio import gr, gr_unittest
+from gnuradio import gr, gr_unittest, wavelet, analog, blocks
import copy
#import pygsl.wavelet as wavelet # FIXME: pygsl not checked for in config
import math
-import wavelet_swig
-import analog_swig as analog
-import blocks_swig as blocks
def sqr(x):
return x*x
@@ -108,7 +105,7 @@ class test_classify(gr_unittest.TestCase):
src_data = (0.0, 1.0, 0.0, 1.0, 0.0)
src = blocks.vector_source_f(src_data, False, len(src_grid))
- sq = wavelet_swig.squash_ff(src_grid, trg_grid)
+ sq = wavelet.squash_ff(src_grid, trg_grid)
dst = blocks.vector_sink_f(len(trg_grid))
self.tb.connect(src, sq)
self.tb.connect(sq, dst)
@@ -133,8 +130,10 @@ class test_classify(gr_unittest.TestCase):
# c = w.transform_forward(b, ws)
# d = w.transform_inverse(c, ws)
#
+# src = gr.vector_source_f(b, False, n)
+# wv = wavelet.wavelet_ff(n, o, True)
# src = blocks.vector_source_f(b, False, n)
-# wv = wavelet_swig.wavelet_ff(n, o, True)
+# wv = wavelet.wavelet_ff(n, o, True)
#
# dst = blocks.vector_sink_f(n)
# self.tb.connect(src, wv)
@@ -163,7 +162,7 @@ class test_classify(gr_unittest.TestCase):
k += 01<<e
src = blocks.vector_source_f(src_data, False, len(src_data))
- kon = wavelet_swig.wvps_ff(len(src_data))
+ kon = wavelet.wvps_ff(len(src_data))
dst = blocks.vector_sink_f(int(math.ceil(math.log(len(src_data), 2))))
self.tb.connect(src, kon)
diff --git a/gr-wxgui/CMakeLists.txt b/gr-wxgui/CMakeLists.txt
index 25382638c5..0006160f8c 100644
--- a/gr-wxgui/CMakeLists.txt
+++ b/gr-wxgui/CMakeLists.txt
@@ -97,7 +97,7 @@ install(
add_subdirectory(include/gnuradio/wxgui)
add_subdirectory(lib)
add_subdirectory(grc)
+add_subdirectory(python/wxgui)
add_subdirectory(swig)
-add_subdirectory(python)
endif(ENABLE_GR_WXGUI)
diff --git a/gr-wxgui/python/CMakeLists.txt b/gr-wxgui/python/wxgui/CMakeLists.txt
index 24e06acd5e..24e06acd5e 100644
--- a/gr-wxgui/python/CMakeLists.txt
+++ b/gr-wxgui/python/wxgui/CMakeLists.txt
diff --git a/gr-wxgui/python/__init__.py b/gr-wxgui/python/wxgui/__init__.py
index dd81647fe9..dd81647fe9 100644
--- a/gr-wxgui/python/__init__.py
+++ b/gr-wxgui/python/wxgui/__init__.py
diff --git a/gr-wxgui/python/common.py b/gr-wxgui/python/wxgui/common.py
index 48a62a28ab..48a62a28ab 100644
--- a/gr-wxgui/python/common.py
+++ b/gr-wxgui/python/wxgui/common.py
diff --git a/gr-wxgui/python/const_window.py b/gr-wxgui/python/wxgui/const_window.py
index 2c499b54bd..2c499b54bd 100644
--- a/gr-wxgui/python/const_window.py
+++ b/gr-wxgui/python/wxgui/const_window.py
diff --git a/gr-wxgui/python/constants.py b/gr-wxgui/python/wxgui/constants.py
index 08cc6a6343..08cc6a6343 100644
--- a/gr-wxgui/python/constants.py
+++ b/gr-wxgui/python/wxgui/constants.py
diff --git a/gr-wxgui/python/constsink_gl.py b/gr-wxgui/python/wxgui/constsink_gl.py
index dea76ea753..dea76ea753 100644
--- a/gr-wxgui/python/constsink_gl.py
+++ b/gr-wxgui/python/wxgui/constsink_gl.py
diff --git a/gr-wxgui/python/fft_window.py b/gr-wxgui/python/wxgui/fft_window.py
index 80ecf526b2..80ecf526b2 100644
--- a/gr-wxgui/python/fft_window.py
+++ b/gr-wxgui/python/wxgui/fft_window.py
diff --git a/gr-wxgui/python/fftsink2.py b/gr-wxgui/python/wxgui/fftsink2.py
index 3277cd3ffa..3277cd3ffa 100644
--- a/gr-wxgui/python/fftsink2.py
+++ b/gr-wxgui/python/wxgui/fftsink2.py
diff --git a/gr-wxgui/python/fftsink_gl.py b/gr-wxgui/python/wxgui/fftsink_gl.py
index 272a2456ce..272a2456ce 100644
--- a/gr-wxgui/python/fftsink_gl.py
+++ b/gr-wxgui/python/wxgui/fftsink_gl.py
diff --git a/gr-wxgui/python/fftsink_nongl.py b/gr-wxgui/python/wxgui/fftsink_nongl.py
index f567a22256..f567a22256 100644
--- a/gr-wxgui/python/fftsink_nongl.py
+++ b/gr-wxgui/python/wxgui/fftsink_nongl.py
diff --git a/gr-wxgui/python/form.py b/gr-wxgui/python/wxgui/form.py
index 0442e49c84..0442e49c84 100644
--- a/gr-wxgui/python/form.py
+++ b/gr-wxgui/python/wxgui/form.py
diff --git a/gr-wxgui/python/forms/__init__.py b/gr-wxgui/python/wxgui/forms/__init__.py
index 67d3b4a88a..67d3b4a88a 100644
--- a/gr-wxgui/python/forms/__init__.py
+++ b/gr-wxgui/python/wxgui/forms/__init__.py
diff --git a/gr-wxgui/python/forms/converters.py b/gr-wxgui/python/wxgui/forms/converters.py
index db14d2752c..db14d2752c 100644
--- a/gr-wxgui/python/forms/converters.py
+++ b/gr-wxgui/python/wxgui/forms/converters.py
diff --git a/gr-wxgui/python/forms/forms.py b/gr-wxgui/python/wxgui/forms/forms.py
index 80822ae174..80822ae174 100644
--- a/gr-wxgui/python/forms/forms.py
+++ b/gr-wxgui/python/wxgui/forms/forms.py
diff --git a/gr-wxgui/python/gui.py b/gr-wxgui/python/wxgui/gui.py
index ccc773eabf..ccc773eabf 100644
--- a/gr-wxgui/python/gui.py
+++ b/gr-wxgui/python/wxgui/gui.py
diff --git a/gr-wxgui/python/histo_window.py b/gr-wxgui/python/wxgui/histo_window.py
index f830dc83bd..f830dc83bd 100644
--- a/gr-wxgui/python/histo_window.py
+++ b/gr-wxgui/python/wxgui/histo_window.py
diff --git a/gr-wxgui/python/histosink_gl.py b/gr-wxgui/python/wxgui/histosink_gl.py
index 2126d63191..2126d63191 100644
--- a/gr-wxgui/python/histosink_gl.py
+++ b/gr-wxgui/python/wxgui/histosink_gl.py
diff --git a/gr-wxgui/python/number_window.py b/gr-wxgui/python/wxgui/number_window.py
index 751047db94..751047db94 100644
--- a/gr-wxgui/python/number_window.py
+++ b/gr-wxgui/python/wxgui/number_window.py
diff --git a/gr-wxgui/python/numbersink2.py b/gr-wxgui/python/wxgui/numbersink2.py
index 62a096e112..62a096e112 100644
--- a/gr-wxgui/python/numbersink2.py
+++ b/gr-wxgui/python/wxgui/numbersink2.py
diff --git a/gr-wxgui/python/plot.py b/gr-wxgui/python/wxgui/plot.py
index 041a2a7a50..041a2a7a50 100644
--- a/gr-wxgui/python/plot.py
+++ b/gr-wxgui/python/wxgui/plot.py
diff --git a/gr-wxgui/python/plotter/__init__.py b/gr-wxgui/python/wxgui/plotter/__init__.py
index 616492a3e6..616492a3e6 100644
--- a/gr-wxgui/python/plotter/__init__.py
+++ b/gr-wxgui/python/wxgui/plotter/__init__.py
diff --git a/gr-wxgui/python/plotter/bar_plotter.py b/gr-wxgui/python/wxgui/plotter/bar_plotter.py
index 487db66b64..487db66b64 100644
--- a/gr-wxgui/python/plotter/bar_plotter.py
+++ b/gr-wxgui/python/wxgui/plotter/bar_plotter.py
diff --git a/gr-wxgui/python/plotter/channel_plotter.py b/gr-wxgui/python/wxgui/plotter/channel_plotter.py
index 1eac9f5f3a..1eac9f5f3a 100644
--- a/gr-wxgui/python/plotter/channel_plotter.py
+++ b/gr-wxgui/python/wxgui/plotter/channel_plotter.py
diff --git a/gr-wxgui/python/plotter/common.py b/gr-wxgui/python/wxgui/plotter/common.py
index 9af636245d..9af636245d 100644
--- a/gr-wxgui/python/plotter/common.py
+++ b/gr-wxgui/python/wxgui/plotter/common.py
diff --git a/gr-wxgui/python/plotter/gltext.py b/gr-wxgui/python/wxgui/plotter/gltext.py
index 0b6e3f55b3..0b6e3f55b3 100644
--- a/gr-wxgui/python/plotter/gltext.py
+++ b/gr-wxgui/python/wxgui/plotter/gltext.py
diff --git a/gr-wxgui/python/plotter/grid_plotter_base.py b/gr-wxgui/python/wxgui/plotter/grid_plotter_base.py
index a492539575..a492539575 100644
--- a/gr-wxgui/python/plotter/grid_plotter_base.py
+++ b/gr-wxgui/python/wxgui/plotter/grid_plotter_base.py
diff --git a/gr-wxgui/python/plotter/plotter_base.py b/gr-wxgui/python/wxgui/plotter/plotter_base.py
index 6f2f0e7bad..6f2f0e7bad 100644
--- a/gr-wxgui/python/plotter/plotter_base.py
+++ b/gr-wxgui/python/wxgui/plotter/plotter_base.py
diff --git a/gr-wxgui/python/plotter/waterfall_plotter.py b/gr-wxgui/python/wxgui/plotter/waterfall_plotter.py
index 02ec67ee4c..02ec67ee4c 100644
--- a/gr-wxgui/python/plotter/waterfall_plotter.py
+++ b/gr-wxgui/python/wxgui/plotter/waterfall_plotter.py
diff --git a/gr-wxgui/python/powermate.py b/gr-wxgui/python/wxgui/powermate.py
index 7c324c5d95..7c324c5d95 100644
--- a/gr-wxgui/python/powermate.py
+++ b/gr-wxgui/python/wxgui/powermate.py
diff --git a/gr-wxgui/python/pubsub.py b/gr-wxgui/python/wxgui/pubsub.py
index e55d691978..e55d691978 100644
--- a/gr-wxgui/python/pubsub.py
+++ b/gr-wxgui/python/wxgui/pubsub.py
diff --git a/gr-wxgui/python/scope_window.py b/gr-wxgui/python/wxgui/scope_window.py
index 5d367d9c45..5d367d9c45 100644
--- a/gr-wxgui/python/scope_window.py
+++ b/gr-wxgui/python/wxgui/scope_window.py
diff --git a/gr-wxgui/python/scopesink2.py b/gr-wxgui/python/wxgui/scopesink2.py
index 99e268895a..99e268895a 100644
--- a/gr-wxgui/python/scopesink2.py
+++ b/gr-wxgui/python/wxgui/scopesink2.py
diff --git a/gr-wxgui/python/scopesink_gl.py b/gr-wxgui/python/wxgui/scopesink_gl.py
index b2d5670c77..b2d5670c77 100644
--- a/gr-wxgui/python/scopesink_gl.py
+++ b/gr-wxgui/python/wxgui/scopesink_gl.py
diff --git a/gr-wxgui/python/scopesink_nongl.py b/gr-wxgui/python/wxgui/scopesink_nongl.py
index 28a473860f..28a473860f 100644
--- a/gr-wxgui/python/scopesink_nongl.py
+++ b/gr-wxgui/python/wxgui/scopesink_nongl.py
diff --git a/gr-wxgui/python/slider.py b/gr-wxgui/python/wxgui/slider.py
index 7194de47c2..7194de47c2 100644
--- a/gr-wxgui/python/slider.py
+++ b/gr-wxgui/python/wxgui/slider.py
diff --git a/gr-wxgui/python/stdgui2.py b/gr-wxgui/python/wxgui/stdgui2.py
index 71436d72c4..71436d72c4 100644
--- a/gr-wxgui/python/stdgui2.py
+++ b/gr-wxgui/python/wxgui/stdgui2.py
diff --git a/gr-wxgui/python/termsink.py b/gr-wxgui/python/wxgui/termsink.py
index a0cfd575d6..a0cfd575d6 100644
--- a/gr-wxgui/python/termsink.py
+++ b/gr-wxgui/python/wxgui/termsink.py
diff --git a/gr-wxgui/python/waterfall_window.py b/gr-wxgui/python/wxgui/waterfall_window.py
index 9f91d17eb4..9f91d17eb4 100644
--- a/gr-wxgui/python/waterfall_window.py
+++ b/gr-wxgui/python/wxgui/waterfall_window.py
diff --git a/gr-wxgui/python/waterfallsink2.py b/gr-wxgui/python/wxgui/waterfallsink2.py
index 0b876fc3e2..0b876fc3e2 100644
--- a/gr-wxgui/python/waterfallsink2.py
+++ b/gr-wxgui/python/wxgui/waterfallsink2.py
diff --git a/gr-wxgui/python/waterfallsink_gl.py b/gr-wxgui/python/wxgui/waterfallsink_gl.py
index ead97df1e7..ead97df1e7 100644
--- a/gr-wxgui/python/waterfallsink_gl.py
+++ b/gr-wxgui/python/wxgui/waterfallsink_gl.py
diff --git a/gr-wxgui/python/waterfallsink_nongl.py b/gr-wxgui/python/wxgui/waterfallsink_nongl.py
index 5cfcd24413..5cfcd24413 100644
--- a/gr-wxgui/python/waterfallsink_nongl.py
+++ b/gr-wxgui/python/wxgui/waterfallsink_nongl.py
diff --git a/gruel/src/python/gruel/CMakeLists.txt b/gruel/src/python/gruel/CMakeLists.txt
new file mode 100644
index 0000000000..377d1c4824
--- /dev/null
+++ b/gruel/src/python/gruel/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+
+include(GrPython)
+
+########################################################################
+# Install python files
+########################################################################
+GR_PYTHON_INSTALL(
+ FILES __init__.py
+ DESTINATION ${GR_PYTHON_DIR}/gruel
+ COMPONENT "gruel_python"
+)
+
+########################################################################
+# Setup unit tests
+########################################################################
+if(ENABLE_TESTING)
+include(GrTest)
+file(GLOB py_qa_test_files "qa_*.py")
+foreach(py_qa_test_file ${py_qa_test_files})
+ get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
+ set(GR_TEST_TARGET_DEPS "")
+ set(GR_TEST_LIBRARY_DIRS "")
+ set(GR_TEST_PYTHON_DIRS
+ ${CMAKE_BINARY_DIR}/gruel/src/python
+ )
+ GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file})
+endforeach(py_qa_test_file)
+endif(ENABLE_TESTING)