rad-lab 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. rad_lab-0.0.1/.github/workflows/publish.yml +54 -0
  2. rad_lab-0.0.1/.github/workflows/python-app.yml +42 -0
  3. rad_lab-0.0.1/.github/workflows/ruff.yml +21 -0
  4. rad_lab-0.0.1/.gitignore +8 -0
  5. rad_lab-0.0.1/.pre-commit-config.yaml +10 -0
  6. rad_lab-0.0.1/LICENSE +674 -0
  7. rad_lab-0.0.1/PKG-INFO +131 -0
  8. rad_lab-0.0.1/README.md +109 -0
  9. rad_lab-0.0.1/apps/exercises/1_0_range_equation.py +140 -0
  10. rad_lab-0.0.1/apps/exercises/2_0_pulse_doppler_radar.py +125 -0
  11. rad_lab-0.0.1/apps/exercises/3_1_waveforms_xcorrelation.py +51 -0
  12. rad_lab-0.0.1/apps/exercises/3_2_barker_xcorrelation_sidelobes.py +51 -0
  13. rad_lab-0.0.1/apps/exercises/3_3_noisy_xcorrelations.py +158 -0
  14. rad_lab-0.0.1/apps/exercises/3_4_barker_vs_uncoded_ampAndWidth.py +42 -0
  15. rad_lab-0.0.1/apps/exercises/4_1_datacube_process_test.py +46 -0
  16. rad_lab-0.0.1/apps/exercises/4_4_windowing_comparison.py +41 -0
  17. rad_lab-0.0.1/apps/exercises/4_5_complex_tone.py +26 -0
  18. rad_lab-0.0.1/apps/exercises/4_6_calc_r_and_rdot_from_positions.py +11 -0
  19. rad_lab-0.0.1/apps/exercises/5_0_stationary_rdm_snapshot.py +37 -0
  20. rad_lab-0.0.1/apps/exercises/6_0_rdm_keystone_no_test.py +8 -0
  21. rad_lab-0.0.1/apps/exercises/7_0_linear_array_studies.py +51 -0
  22. rad_lab-0.0.1/apps/exercises/7_1-3_linear_arrays_figs24_28.py +116 -0
  23. rad_lab-0.0.1/apps/exercises/7_4_linear_arrays_ifft_array_factor_no_test.py +30 -0
  24. rad_lab-0.0.1/apps/exercises/7_5_monopulse_snr_test.py +71 -0
  25. rad_lab-0.0.1/apps/exercises/7_5_monopulse_snr_test_freq.py +113 -0
  26. rad_lab-0.0.1/apps/exercises/7_6_phase_center_location.py +29 -0
  27. rad_lab-0.0.1/apps/exercises/7_7_sub_array_sum_diff.py +45 -0
  28. rad_lab-0.0.1/apps/exercises/7_8_monopulse_tgt_doppler_cell.py +65 -0
  29. rad_lab-0.0.1/apps/make_figures.py +98 -0
  30. rad_lab-0.0.1/apps/rdms/jammer_offset.py +35 -0
  31. rad_lab-0.0.1/apps/rdms/kitchen_sink.py +53 -0
  32. rad_lab-0.0.1/apps/rdms/readme_example.py +25 -0
  33. rad_lab-0.0.1/apps/rdms/skin_snr.py +31 -0
  34. rad_lab-0.0.1/apps/rdms/vbm.py +43 -0
  35. rad_lab-0.0.1/apps/rdms/vbm_w_lfm.py +43 -0
  36. rad_lab-0.0.1/apps/run_apps.sh +68 -0
  37. rad_lab-0.0.1/apps/studies/monopulse_considering_time_delay_between_elements.py +132 -0
  38. rad_lab-0.0.1/apps/studies/vbm_methods.py +56 -0
  39. rad_lab-0.0.1/docs/figs/rdm_readme_example.png +0 -0
  40. rad_lab-0.0.1/docs/manuscript.org +143 -0
  41. rad_lab-0.0.1/docs/todo.org +28 -0
  42. rad_lab-0.0.1/pyproject.toml +78 -0
  43. rad_lab-0.0.1/setup.cfg +4 -0
  44. rad_lab-0.0.1/src/rad_lab/__init__.py +39 -0
  45. rad_lab-0.0.1/src/rad_lab/_rdm_extras.py +74 -0
  46. rad_lab-0.0.1/src/rad_lab/_rdm_internals.py +341 -0
  47. rad_lab-0.0.1/src/rad_lab/_version.py +24 -0
  48. rad_lab-0.0.1/src/rad_lab/constants.py +6 -0
  49. rad_lab-0.0.1/src/rad_lab/geometry.py +27 -0
  50. rad_lab-0.0.1/src/rad_lab/monopulse.py +58 -0
  51. rad_lab-0.0.1/src/rad_lab/noise.py +127 -0
  52. rad_lab-0.0.1/src/rad_lab/pulse_doppler_radar.py +159 -0
  53. rad_lab-0.0.1/src/rad_lab/range_equation.py +365 -0
  54. rad_lab-0.0.1/src/rad_lab/rdm.py +251 -0
  55. rad_lab-0.0.1/src/rad_lab/returns.py +80 -0
  56. rad_lab-0.0.1/src/rad_lab/rf_datacube.py +141 -0
  57. rad_lab-0.0.1/src/rad_lab/uniform_linear_arrays.py +207 -0
  58. rad_lab-0.0.1/src/rad_lab/utilities.py +107 -0
  59. rad_lab-0.0.1/src/rad_lab/vbm.py +179 -0
  60. rad_lab-0.0.1/src/rad_lab/waveform.py +321 -0
  61. rad_lab-0.0.1/src/rad_lab/waveform_helpers.py +351 -0
  62. rad_lab-0.0.1/src/rad_lab.egg-info/PKG-INFO +131 -0
  63. rad_lab-0.0.1/src/rad_lab.egg-info/SOURCES.txt +73 -0
  64. rad_lab-0.0.1/src/rad_lab.egg-info/dependency_links.txt +1 -0
  65. rad_lab-0.0.1/src/rad_lab.egg-info/requires.txt +7 -0
  66. rad_lab-0.0.1/src/rad_lab.egg-info/top_level.txt +1 -0
  67. rad_lab-0.0.1/tests/test_array_phase_center.py +39 -0
  68. rad_lab-0.0.1/tests/test_jammer_in_correct_rangedoppler_bin.py +63 -0
  69. rad_lab-0.0.1/tests/test_matched_filter_peak.py +52 -0
  70. rad_lab-0.0.1/tests/test_monopulse_angle_estimation.py +121 -0
  71. rad_lab-0.0.1/tests/test_monopulse_rdm.py +41 -0
  72. rad_lab-0.0.1/tests/test_phase_utilities.py +44 -0
  73. rad_lab-0.0.1/tests/test_pulse_doppler_radar.py +58 -0
  74. rad_lab-0.0.1/tests/test_range_and_rangerate.py +42 -0
  75. rad_lab-0.0.1/tests/test_skin_in_correct_rangedoppler_bin.py +52 -0
@@ -0,0 +1,54 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ build:
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0 # required for setuptools-scm to determine version from tags
19
+
20
+ - name: Set up Python
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: "3.11"
24
+
25
+ - name: Install build dependencies
26
+ run: |
27
+ python -m pip install --upgrade pip
28
+ pip install build
29
+
30
+ - name: Build package
31
+ run: python -m build
32
+
33
+ - name: Upload dist artifacts
34
+ uses: actions/upload-artifact@v4
35
+ with:
36
+ name: dist
37
+ path: dist/
38
+
39
+ publish:
40
+ needs: build
41
+ runs-on: ubuntu-latest
42
+ environment: pypi
43
+ permissions:
44
+ id-token: write # required for trusted publishing
45
+
46
+ steps:
47
+ - name: Download dist artifacts
48
+ uses: actions/download-artifact@v4
49
+ with:
50
+ name: dist
51
+ path: dist/
52
+
53
+ - name: Publish to PyPI
54
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,42 @@
1
+ # This workflow will install Python dependencies, run tests and lint with a single version of Python
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
3
+
4
+ name: Python application
5
+
6
+ on:
7
+ push:
8
+ branches: [ "main" ]
9
+ pull_request:
10
+ branches: [ "main" ]
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ jobs:
16
+ test:
17
+
18
+ runs-on: ubuntu-latest
19
+
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ - name: Set up Python 3.11
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.11"
26
+ - name: Install dependencies
27
+ run: |
28
+ sudo apt install -y texlive-latex-base texlive-latex-extra texlive-fonts-recommended cm-super dvipng
29
+ python -m pip install --upgrade pip
30
+ pip install ".[dev]"
31
+ - name: Lint with flake8
32
+ run: |
33
+ # stop the build if there are Python syntax errors or undefined names
34
+ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
35
+ # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
36
+ flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
37
+ - name: Test with pytest
38
+ run: |
39
+ python -m pytest tests/ -v
40
+ - name: Test apps
41
+ run: |
42
+ bash apps/run_apps.sh
@@ -0,0 +1,21 @@
1
+ name: Ruff Linter & Formatter
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ ruff-check:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v4
10
+ - uses: actions/setup-python@v5
11
+ with:
12
+ python-version: '3.11.6'
13
+ - uses: astral-sh/ruff-action@v3
14
+ with:
15
+ version: "0.15.8" # Use your local ruff --version
16
+ - name: Install ruff
17
+ run: pip install ruff
18
+ - name: Run linter and formatter
19
+ run: |
20
+ ruff format --diff .
21
+ ruff check .
@@ -0,0 +1,8 @@
1
+ *.pyc
2
+ /build/
3
+ dist
4
+ *.egg-info
5
+ /src/rad_lab/_version.py
6
+ /docs/generated_artifacts
7
+ /docs/working_notes.org
8
+
@@ -0,0 +1,10 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ # Find the latest tag on GitHub.
4
+ rev: v0.15.8
5
+ hooks:
6
+ # Run the linter.
7
+ - id: ruff
8
+ args: [--fix]
9
+ # Run the formatter.
10
+ - id: ruff-format