SLASD 0.0.0__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 (73) hide show
  1. slasd-0.0.0/.arduino_config.lua +5 -0
  2. slasd-0.0.0/.editorconfig +9 -0
  3. slasd-0.0.0/.github/ISSUE_TEMPLATE/1-spelling.yml +35 -0
  4. slasd-0.0.0/.github/ISSUE_TEMPLATE/2-clarity.yml +37 -0
  5. slasd-0.0.0/.github/ISSUE_TEMPLATE/3-question.yml +25 -0
  6. slasd-0.0.0/.github/ISSUE_TEMPLATE/4-bug.yml +72 -0
  7. slasd-0.0.0/.github/ISSUE_TEMPLATE/5-enhancement.yml +34 -0
  8. slasd-0.0.0/.github/PULL_REQUEST_TEMPLATE/001-change_set.md +50 -0
  9. slasd-0.0.0/.github/PULL_REQUEST_TEMPLATE/002-madr.md +20 -0
  10. slasd-0.0.0/.github/pull_request_template.md +5 -0
  11. slasd-0.0.0/.github/workflows/flake.yml +23 -0
  12. slasd-0.0.0/.github/workflows/release.yml +103 -0
  13. slasd-0.0.0/.gitignore +227 -0
  14. slasd-0.0.0/.pre-commit-config.yaml +44 -0
  15. slasd-0.0.0/.rumdl.toml +20 -0
  16. slasd-0.0.0/.uncrustify.cfg +125 -0
  17. slasd-0.0.0/.vscode/launch.json +20 -0
  18. slasd-0.0.0/Justfile +117 -0
  19. slasd-0.0.0/LICENSE +21 -0
  20. slasd-0.0.0/PKG-INFO +311 -0
  21. slasd-0.0.0/arduino_src/arduino_src.ino +219 -0
  22. slasd-0.0.0/docs/.nav.yml +3 -0
  23. slasd-0.0.0/docs/README.md +301 -0
  24. slasd-0.0.0/docs/content/arduino_src/.nav.yml +1 -0
  25. slasd-0.0.0/docs/content/arduino_src/units/00001_recieve_command.md +33 -0
  26. slasd-0.0.0/docs/content/arduino_src/units/index.md +7 -0
  27. slasd-0.0.0/docs/content/arduino_src/usecase/.nav.yml +1 -0
  28. slasd-0.0.0/docs/content/arduino_src/usecase/actors/00001_server.md +9 -0
  29. slasd-0.0.0/docs/content/arduino_src/usecase/actors/index.md +7 -0
  30. slasd-0.0.0/docs/content/arduino_src/usecase/usecase/.nav.yml +1 -0
  31. slasd-0.0.0/docs/content/arduino_src/usecase/usecase/00001_recieve_command.md +38 -0
  32. slasd-0.0.0/docs/content/arduino_src/usecase/usecase/00002_set_state.md +36 -0
  33. slasd-0.0.0/docs/content/arduino_src/usecase/usecase/index.md +19 -0
  34. slasd-0.0.0/docs/content/madr/.nav.yml +1 -0
  35. slasd-0.0.0/docs/content/madr/00000_use_markdown_architectural_decision_records.md +34 -0
  36. slasd-0.0.0/docs/content/madr/00001_copy_fastrak_structure.md +27 -0
  37. slasd-0.0.0/docs/content/madr/00002_testing.md +29 -0
  38. slasd-0.0.0/docs/content/madr/index.md +16 -0
  39. slasd-0.0.0/docs/content/python_driver/.nav.yml +1 -0
  40. slasd-0.0.0/docs/content/python_driver/units/00001_base_animator.md +61 -0
  41. slasd-0.0.0/docs/content/python_driver/units/00002_fastrak_animator.md +44 -0
  42. slasd-0.0.0/docs/content/python_driver/units/index.md +7 -0
  43. slasd-0.0.0/docs/content/python_driver/usecase/.nav.yml +1 -0
  44. slasd-0.0.0/docs/content/python_driver/usecase/actors/00001_user.md +10 -0
  45. slasd-0.0.0/docs/content/python_driver/usecase/actors/00002_device_failure.md +9 -0
  46. slasd-0.0.0/docs/content/python_driver/usecase/actors/index.md +7 -0
  47. slasd-0.0.0/docs/content/python_driver/usecase/usecase/.nav.yml +1 -0
  48. slasd-0.0.0/docs/content/python_driver/usecase/usecase/00001_send_command.md +38 -0
  49. slasd-0.0.0/docs/content/python_driver/usecase/usecase/index.md +19 -0
  50. slasd-0.0.0/docs/infra/.authors.yml +14 -0
  51. slasd-0.0.0/docs/infra/assets/favicon.png +0 -0
  52. slasd-0.0.0/docs/infra/assets/icon.svg +6941 -0
  53. slasd-0.0.0/docs/infra/assets/logo.svg +6941 -0
  54. slasd-0.0.0/docs/infra/css/admonitions.css +645 -0
  55. slasd-0.0.0/docs/infra/css/authors.css +25 -0
  56. slasd-0.0.0/docs/infra/css/colors.css +1953 -0
  57. slasd-0.0.0/docs/infra/css/hcounter.css +44 -0
  58. slasd-0.0.0/docs/infra/css/icon.css +14 -0
  59. slasd-0.0.0/docs/infra/css/status.css +67 -0
  60. slasd-0.0.0/docs/infra/js/extra.js +32 -0
  61. slasd-0.0.0/docs/infra/js/mermaid.mjs +36 -0
  62. slasd-0.0.0/docs/infra/ref.bib +30 -0
  63. slasd-0.0.0/flake.lock +27 -0
  64. slasd-0.0.0/flake.nix +50 -0
  65. slasd-0.0.0/mkdocs.yml +125 -0
  66. slasd-0.0.0/pyproject.toml +119 -0
  67. slasd-0.0.0/slasd/__init__.py +8 -0
  68. slasd-0.0.0/slasd/commands/__init__.py +1 -0
  69. slasd-0.0.0/slasd/commands/command.py +34 -0
  70. slasd-0.0.0/slasd/commands/noResp.py +24 -0
  71. slasd-0.0.0/slasd/fastrakAnimator.py +133 -0
  72. slasd-0.0.0/slasd/ledAnimationDriver.py +121 -0
  73. slasd-0.0.0/uv.lock +1910 -0
@@ -0,0 +1,5 @@
1
+ return {
2
+ board = "arduino:avr:mega",
3
+ port = "/dev/ttyUSB0",
4
+ baudrate = "115200",
5
+ }
@@ -0,0 +1,9 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ insert_final_newline = false
6
+ end_of_line = lf
7
+ indent_style = space
8
+ indent_size = 4
9
+ max_line_length = 100
@@ -0,0 +1,35 @@
1
+ name: 🖋️ Spelling and Grammar
2
+ description: Template for Spelling and Grammar reports
3
+ title: "[🖋️]"
4
+ body:
5
+ - type: checkboxes
6
+ id: check-search
7
+ attributes:
8
+ label: Is there an existing issue for this?
9
+ description: >-
10
+ Please search to see if an issue already exists for the issue you encountered.
11
+ options:
12
+ - label: I have searched the existing issues
13
+ required: true
14
+ - type: textarea
15
+ id: location
16
+ attributes:
17
+ label: Where are the errors?
18
+ description: The location where the error can be found
19
+ placeholder: "Example: Page x of pdf y or path to a file in the repository."
20
+ validations:
21
+ required: true
22
+ - type: textarea
23
+ id: whats-wrong
24
+ attributes:
25
+ label: What's is the error?
26
+ description: A description of the error
27
+ placeholder: "Example: You spelled grammar as grammer. "
28
+ validations:
29
+ required: true
30
+ - type: textarea
31
+ id: solution
32
+ attributes:
33
+ label: "Proposed solution:"
34
+ description: A description of how to resolve the error
35
+ placeholder: "Example: Change grammer -> grammar"
@@ -0,0 +1,37 @@
1
+ name: 🤷 Clarity
2
+ description: Template for clarity reports
3
+ title: '[🤷]'
4
+ body:
5
+ - type: checkboxes
6
+ id: check-search
7
+ attributes:
8
+ label: Is there an existing issue for this?
9
+ description: >-
10
+ Please search to see if an issue already exists for the issue you
11
+ encountered.
12
+ options:
13
+ - label: I have searched the existing issues
14
+ required: true
15
+ - type: textarea
16
+ id: location
17
+ attributes:
18
+ label: Where are the errors?
19
+ description: The location where the error can be found
20
+ placeholder: 'Example: Page x of pdf y or path to a file in the repository.'
21
+ validations:
22
+ required: true
23
+ - type: textarea
24
+ id: whats-wrong
25
+ attributes:
26
+ label: What's is the error?
27
+ description: A description of the error
28
+ placeholder: 'Example: I think where you say x you mean y. '
29
+ validations:
30
+ required: true
31
+ - type: textarea
32
+ id: solution
33
+ attributes:
34
+ label: 'Proposed solution:'
35
+ description: A description of how to resolve the error
36
+ placeholder: 'Example: Reword x like z so that it better reflects y.'
37
+
@@ -0,0 +1,25 @@
1
+ name: ❓ Question
2
+ description: Template for asking questions
3
+ title: "[❓] "
4
+ labels:
5
+ - Question
6
+ body:
7
+ - type: checkboxes
8
+ id: check-search
9
+ attributes:
10
+ label: Is there an existing issue for this?
11
+ description: >-
12
+ Please search to see if an issue already exists for the issue you
13
+ encountered.
14
+ options:
15
+ - label: I have searched the existing issues
16
+ required: true
17
+ - type: textarea
18
+ id: whats-your-question
19
+ attributes:
20
+ label: What is the your question?
21
+ description: Your question
22
+ placeholder: >-
23
+ Example: How do you know xyz is true?
24
+ validations:
25
+ required: true
@@ -0,0 +1,72 @@
1
+ name: 🐞 Bug
2
+ description: File a bug report issue
3
+ title: '[🐞] '
4
+ labels:
5
+ - Bug
6
+ - Needs Triage
7
+ body:
8
+ - type: checkboxes
9
+ id: check-search
10
+ attributes:
11
+ label: Is there an existing issue for this?
12
+ description: >-
13
+ Please search to see if an issue already exists for the bug you
14
+ encountered.
15
+ options:
16
+ - label: I have searched the existing issues
17
+ required: true
18
+ - type: checkboxes
19
+ id: check-version
20
+ attributes:
21
+ label: Are you using the latest version of the libraries?
22
+ description: >-
23
+ Only bug reports that can be reproduced on the latest release will be
24
+ considered.
25
+ options:
26
+ - label: I have confirmed I'm using the latest version of the libraries
27
+ required: true
28
+ - type: textarea
29
+ attributes:
30
+ label: Environment
31
+ description: >-
32
+ examples: - **OS**: Windows 11 22H2 - **Compiler:**: clang -
33
+ **Compiler Version:**: 7.0.0 - **Libraries Impacted**: x,y,z
34
+ value: |-
35
+ - OS:
36
+ - Compiler:
37
+ - Compiler Version:
38
+ - Libraries Impacted:
39
+ render: Markdown
40
+ validations:
41
+ required: true
42
+ - type: textarea
43
+ id: description
44
+ attributes:
45
+ label: Describe the bug
46
+ description: |
47
+ A clear and concise description of what the bug is.
48
+ If applicable, add screenshots and log to help explain your problem.
49
+ validations:
50
+ required: true
51
+ - type: textarea
52
+ id: debug-output
53
+ attributes:
54
+ label: Debug Output
55
+ description: |
56
+ Steps to get debug output:
57
+ 1. Do x
58
+ 2. Do y
59
+ 3. Do z
60
+ 5. Upload the debug output here
61
+ validations:
62
+ required: true
63
+ - type: textarea
64
+ id: additional-context
65
+ attributes:
66
+ label: Anything else?
67
+ description: >
68
+ Links? References? Anything that will give us more context about the
69
+ issue you are encountering!
70
+
71
+ Tip: You can attach images or log files by clicking this area to
72
+ highlight it and then dragging files in.
@@ -0,0 +1,34 @@
1
+ name: 🚀 Enhancement
2
+ description: Template for suggesting and enhancement
3
+ title: "[🚀] "
4
+ labels:
5
+ - Enhancement
6
+ body:
7
+ - type: checkboxes
8
+ id: check-search
9
+ attributes:
10
+ label: Is there an existing issue for this?
11
+ description: >-
12
+ Please search to see if an issue already exists for the issue you
13
+ encountered.
14
+ options:
15
+ - label: I have searched the existing issues
16
+ required: true
17
+ - type: checkboxes
18
+ id: check-pull
19
+ attributes:
20
+ label: Will you be opening a pull request?
21
+ description: >-
22
+ Will you be opening a pull request for this enhancement?
23
+ options:
24
+ - label: "yes"
25
+ - label: "no"
26
+ - type: textarea
27
+ id: whats-your-suggestion
28
+ attributes:
29
+ label: What is the your suggested enhancement? and Why is it an enhancement?
30
+ description: Your question
31
+ placeholder: >-
32
+ Example: You should add xyz feature to this work.
33
+ validations:
34
+ required: true
@@ -0,0 +1,50 @@
1
+ Please set the title of the pull request to:
2
+
3
+ ```text
4
+ [📑] <title>
5
+ ```
6
+
7
+ [Provide a succinct and descriptive title for the pull request, e.g., "Implements a new notation
8
+ module for the Conway notation."]
9
+
10
+ ## Type of Change
11
+
12
+ - [ ] New feature
13
+ - [ ] Bug fix
14
+ - [ ] Documentation update
15
+ - [ ] Refactoring
16
+
17
+ ## Description
18
+
19
+ [Provide a detailed explanation of the changes you have made. Include the reasons behind these
20
+ changes and any relevant context. Link any related issues.]
21
+
22
+ ## Testing
23
+
24
+ [Detail the testing you have performed to ensure that these changes function as intended. Include
25
+ information about any added tests.]
26
+
27
+ ## Additional Information
28
+
29
+ [Any additional information that reviewers should be aware of.]
30
+
31
+ ## Checklist
32
+
33
+ [Provide a justification for any unchecked boxes.]
34
+
35
+ - [ ] I have made corresponding changes to the documentation.
36
+ - [ ] There is no `./.todo` directory
37
+ - [ ] My code adheres to the coding and style guidelines of the project.
38
+ - [ ] I have performed a self-review of my own code.
39
+ - [ ] I have commented my code, particularly in hard-to-understand areas.
40
+ - [ ] My changes generate no new errors or warnings
41
+ - [ ] No new tests are failing.
42
+
43
+ ### New Feature List
44
+
45
+ [Provide a justification for any unchecked boxes.]
46
+
47
+ - [ ] The feature has a use case document
48
+ - [ ] The feature has a unit description document
49
+ - [ ] The feature has an implementation
50
+ - [ ] The feature has unit tests
@@ -0,0 +1,20 @@
1
+ Please set the title of the pull request to:
2
+
3
+ ```text
4
+ [💭] <madr title>
5
+ ```
6
+
7
+ > [!note]
8
+ >
9
+ > 1. Create a branch for a proposal with the name: proposal-{{short title}}
10
+ > 2. Create a pull request with this template.
11
+ > 3. In the branch create a Markdown file based on the [MADR Template](https://github.com/adr/madr/blob/4.0.0/template/adr-template.md).
12
+ > Name the Markdown file:
13
+ > {{issue# padded to five digits}}-{{title}}
14
+ > 4. When a decision is made change the status to:
15
+ > * "accepted" and pull the branch into main branch
16
+ > * "rejected" and pull the branch into main branch
17
+
18
+ [link to rendered proposal (branch)](<link to file on proposal branch>)
19
+
20
+ [link to rendered proposal (main)](<link to file on main>)
@@ -0,0 +1,5 @@
1
+
2
+ Please go to the `Preview` tab and select the appropriate sub-template:
3
+
4
+ * [📑 Change Set](?quick_pull=1&expand=1&template=001-change_set.md)
5
+ * [💭 MADR](?quick_pull=1&expand=1&template=002-madr.md)
@@ -0,0 +1,23 @@
1
+ name: update-flake-lock
2
+ on:
3
+ workflow_dispatch: # allows manual triggering
4
+ schedule:
5
+ - cron: "0 0 * * 0" # runs weekly on Sunday at 00:00
6
+
7
+ jobs:
8
+ lockfile:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - name: Checkout repository
12
+ uses: actions/checkout@v4
13
+ - name: Install Nix
14
+ uses: DeterminateSystems/nix-installer-action@main
15
+ - name: Update flake.lock
16
+ uses: DeterminateSystems/update-flake-lock@main
17
+ with:
18
+ pr-title: "[❄️] Update flake.lock" # Title of PR to be created
19
+ commit-msg: "CHORE: Bump flake.lock"
20
+ pr-labels: |
21
+ dependencies
22
+ automated
23
+ token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
@@ -0,0 +1,103 @@
1
+ name: Do quality check and release
2
+
3
+ on:
4
+ pull_request:
5
+ branches: ["main"]
6
+
7
+ workflow_dispatch:
8
+ inputs:
9
+ branch:
10
+ description: "Branch to release"
11
+ required: true
12
+ type: choice
13
+ default: main
14
+ options:
15
+ - main
16
+ # You can add more options here if you need to test on different SDK versions
17
+ do_release:
18
+ description: 'Create Release (must also select Tag above!")'
19
+ required: true
20
+ default: false
21
+ type: boolean
22
+
23
+ do_page:
24
+ description: "Publish to github pages"
25
+ required: true
26
+ default: false
27
+ type: boolean
28
+
29
+ permissions:
30
+ pages: write
31
+ id-token: write
32
+ contents: write
33
+
34
+ jobs:
35
+ release:
36
+ runs-on: ubuntu-latest
37
+ steps:
38
+ - uses: actions/checkout@v4
39
+ with:
40
+ submodules: recursive
41
+ fetch-depth: 0
42
+
43
+ - name: Check Nixpkgs inputs
44
+ uses: DeterminateSystems/flake-checker-action@main
45
+ with:
46
+ fail-mode: true
47
+
48
+ - name: Install Nix
49
+ uses: DeterminateSystems/nix-installer-action@main
50
+
51
+ - name: Check
52
+ run: |
53
+ nix develop --command \
54
+ just check-release
55
+
56
+ - name: Docs html
57
+ run: |
58
+ nix develop --command \
59
+ just html
60
+
61
+ - name: Upload artifact
62
+ if: inputs.do_page
63
+ uses: actions/upload-pages-artifact@v5
64
+ with:
65
+ path: ./.build/docs
66
+
67
+ - name: Deploy to GitHub Pages
68
+ if: inputs.do_page
69
+ uses: actions/deploy-pages@v5
70
+
71
+ - name: Release
72
+ if: startsWith(github.ref, 'refs/tags/') && inputs.do_release
73
+ uses: softprops/action-gh-release@v2
74
+
75
+ publish:
76
+ if: startsWith(github.ref, 'refs/tags/') && inputs.do_release
77
+ needs: release
78
+ environment:
79
+ name: pypi
80
+ runs-on: ubuntu-latest
81
+ steps:
82
+ - uses: actions/checkout@v4
83
+ with:
84
+ submodules: recursive
85
+ fetch-depth: 0
86
+
87
+ - name: Check Nixpkgs inputs
88
+ uses: DeterminateSystems/flake-checker-action@main
89
+ with:
90
+ fail-mode: true
91
+
92
+ - name: Install Nix
93
+ uses: DeterminateSystems/nix-installer-action@main
94
+ - name: Build
95
+ run: |
96
+ nix develop --command \
97
+ uv build
98
+
99
+ # Check that basic features work and we didn't miss to include crucial files
100
+ - name: Publish
101
+ run: |
102
+ nix develop --command \
103
+ uv publish
slasd-0.0.0/.gitignore ADDED
@@ -0,0 +1,227 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py.cover
50
+ *.lcov
51
+ .hypothesis/
52
+ .pytest_cache/
53
+ cover/
54
+
55
+ # Translations
56
+ *.mo
57
+ *.pot
58
+
59
+ # Django stuff:
60
+ *.log
61
+ local_settings.py
62
+ db.sqlite3
63
+ db.sqlite3-journal
64
+
65
+ # Flask stuff:
66
+ instance/
67
+ .webassets-cache
68
+
69
+ # Scrapy stuff:
70
+ .scrapy
71
+
72
+ # Sphinx documentation
73
+ docs/_build/
74
+
75
+ # PyBuilder
76
+ .pybuilder/
77
+ target/
78
+
79
+ # Jupyter Notebook
80
+ .ipynb_checkpoints
81
+
82
+ # IPython
83
+ profile_default/
84
+ ipython_config.py
85
+
86
+ # pyenv
87
+ # For a library or package, you might want to ignore these files since the code is
88
+ # intended to run in multiple environments; otherwise, check them in:
89
+ # .python-version
90
+
91
+ # pipenv
92
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
93
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
94
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
95
+ # install all needed dependencies.
96
+ # Pipfile.lock
97
+
98
+ # UV
99
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
100
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
101
+ # commonly ignored for libraries.
102
+ # uv.lock
103
+
104
+ # poetry
105
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
106
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
107
+ # commonly ignored for libraries.
108
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
109
+ # poetry.lock
110
+ # poetry.toml
111
+
112
+ # pdm
113
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
114
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
115
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
116
+ # pdm.lock
117
+ # pdm.toml
118
+ .pdm-python
119
+ .pdm-build/
120
+
121
+ # pixi
122
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
123
+ # pixi.lock
124
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
125
+ # in the .venv directory. It is recommended not to include this directory in version control.
126
+ .pixi/*
127
+ !.pixi/config.toml
128
+
129
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
130
+ __pypackages__/
131
+
132
+ # Celery stuff
133
+ celerybeat-schedule*
134
+ celerybeat.pid
135
+
136
+ # Redis
137
+ *.rdb
138
+ *.aof
139
+ *.pid
140
+
141
+ # RabbitMQ
142
+ mnesia/
143
+ rabbitmq/
144
+ rabbitmq-data/
145
+
146
+ # ActiveMQ
147
+ activemq-data/
148
+
149
+ # SageMath parsed files
150
+ *.sage.py
151
+
152
+ # Environments
153
+ .env
154
+ .envrc
155
+ .venv
156
+ env/
157
+ venv/
158
+ ENV/
159
+ env.bak/
160
+ venv.bak/
161
+
162
+ # Spyder project settings
163
+ .spyderproject
164
+ .spyproject
165
+
166
+ # Rope project settings
167
+ .ropeproject
168
+
169
+ # mkdocs documentation
170
+ /site
171
+
172
+ # mypy
173
+ .mypy_cache/
174
+ .dmypy.json
175
+ dmypy.json
176
+
177
+ # Pyre type checker
178
+ .pyre/
179
+
180
+ # pytype static type analyzer
181
+ .pytype/
182
+
183
+ # Cython debug symbols
184
+ cython_debug/
185
+
186
+ # PyCharm
187
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
188
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
189
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
190
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
191
+ # .idea/
192
+
193
+ # Abstra
194
+ # Abstra is an AI-powered process automation framework.
195
+ # Ignore directories containing user credentials, local state, and settings.
196
+ # Learn more at https://abstra.io/docs
197
+ .abstra/
198
+
199
+ # Visual Studio Code
200
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
201
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
202
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
203
+ # you could uncomment the following to ignore the entire vscode folder
204
+ # .vscode/
205
+ # Temporary file for partial code execution
206
+ tempCodeRunnerFile.py
207
+
208
+ # Ruff stuff:
209
+ .ruff_cache/
210
+
211
+ # PyPI configuration file
212
+ .pypirc
213
+
214
+ # Marimo
215
+ marimo/_static/
216
+ marimo/_lsp/
217
+ __marimo__/
218
+
219
+ # Streamlit
220
+ .streamlit/secrets.toml
221
+
222
+ .direnv
223
+ .envrc
224
+ .emcache
225
+ *.orig
226
+ out.*
227
+ .todo/
@@ -0,0 +1,44 @@
1
+ repos:
2
+ - repo: local
3
+ hooks:
4
+ - id: ruff_check
5
+ name: ruff check
6
+ language: system
7
+ entry: ruff check
8
+ exclude:
9
+ glob:
10
+ - "libraries/**/*.*"
11
+ files:
12
+ glob:
13
+ - "fastrakSerialDriver/**/*.py"
14
+
15
+ - id: ruff_format
16
+ name: ruff format
17
+ language: system
18
+ entry: ruff format --check
19
+ exclude:
20
+ glob:
21
+ - "libraries/**/*.*"
22
+ files:
23
+ glob:
24
+ - "fastrakSerialDriver/**/*.py"
25
+ - id: tombi
26
+ name: tombi
27
+ language: system
28
+ entry: tombi format --check
29
+ exclude:
30
+ glob:
31
+ - ".github/**/*.*"
32
+ files:
33
+ glob:
34
+ - "**/*.toml"
35
+ - id: docs
36
+ name: docs
37
+ language: system
38
+ entry: rumdl check
39
+ exclude:
40
+ glob:
41
+ - ".github/**/*.*"
42
+ files:
43
+ glob:
44
+ - "**/*.md"