Merge pull request 'prep v5.6.0' (#237) from prep_v5.6.0 into main
EIVE/-/pipeline/head This commit looks good Details

Reviewed-on: #237
This commit is contained in:
Robin Müller 2023-09-14 12:21:37 +02:00
commit bf399c3d91
8 changed files with 45 additions and 88 deletions

18
.flake8
View File

@ -1,18 +0,0 @@
[flake8]
max-line-length = 100
ignore = D203, W503
per-file-ignores =
*/__init__.py: F401
exclude =
.git,
__pycache__,
docs/conf.py,
deps
old,
build,
dist,
venv
max-complexity = 10
extend-ignore =
# See https://github.com/PyCQA/pycodestyle/issues/373
E203,

View File

@ -10,6 +10,15 @@ list yields a list of all related PRs for each release.
# [unreleased] # [unreleased]
# [v5.6.0] 2023-09-14
- `tmtccmd` v6.0.0
- `spacepackets` v18.0.0
## Added
- CFDP file downlink support.
# [v5.5.1] 2023-09-12 # [v5.5.1] 2023-09-12
## Fixed ## Fixed

View File

@ -4,7 +4,7 @@ This application can be used to test the EIVE On-Board Software. Furthermore, it
also be used to retrieve all sorts of telemetry data like housekeeping data. also be used to retrieve all sorts of telemetry data like housekeeping data.
It is recommended to use this application with a virtual environment. It is recommended to use this application with a virtual environment.
The [virtual environemnt](#venv) chapter describes how to set one up. The [requirements](#reqs) The [virtual environment](#venv) chapter describes how to set one up. The [requirements](#reqs)
describes how to install all required packages. describes how to install all required packages.
The configuration file can currently be found at `tmtc_conf.json`. It caches settings The configuration file can currently be found at `tmtc_conf.json`. It caches settings
@ -61,42 +61,57 @@ Run GUI mode
# <a id="reqs"></a> Install requirements # <a id="reqs"></a> Install requirements
There are two ways to install the requirements. One is to install the primary dependency There are two ways to install the requirements. One is to install the primary dependency
`tmtccmd` interactively. This is the recommended way `tmtccmd` interactively.
Assuming you are running in a virtual environment: ## Installing via PyPI
1. Install `tmtccmd` for virtual environment. `-e` for interactive installation. It is recommended to install `eive-tmtc` itself interactively, which also installs
all required dependencies.
```sh ```sh
cd deps/tmtccmd pip install -e .
pip install -e .[gui] ```
```
Alternatively you can also install the packages from PyPI completely, but the risk of If you only want to install all dependencies:
incompatibilities will be high there
```sh ```sh
pip install -r requirements.txt pip install -r requirements.txt
``` ```
## Install interactively
Clone the dependency first inside the `deps` folder
```sh
cd deps
./install_tmtccmd.sh
```
Then you can install `tmtccmd` interactively
```sh
cd tmtccmd
pip install -e .
```
# Run Linter # Run Linter
Can be used to quickly check validity of script. Install `flake8` first Can be used to quickly check validity of script. Install `flake8` first
```sh ```sh
python3 -m pip install flake8 python3 -m pip install ruff
``` ```
or on Windows or on Windows
```sh ```sh
py -m pip install flake8 py -m pip install ruff
``` ```
and then run the `lint.py` script and then run it
```sh ```sh
./lint.py ruff .
``` ```
# Run Auto-Formatter # Run Auto-Formatter

42
lint.py
View File

@ -1,42 +0,0 @@
#!/usr/bin/env python3
import os
import sys
def main():
exclude_dirs_flag = ""
if not os.path.exists("setup.cfg"):
exclude_dirs_flag = (
"--exclude .git,__pycache__,docs/conf.py,old,build,dist,venv"
)
additional_flags_both_steps = "--count --statistics"
additional_flags_first_step = "--select=E9,F63,F7,F82 --show-source"
python_exe = ""
if os.name == "nt":
python_exe = "py -m"
flake8_first_step_cmd = (
f"{python_exe} flake8 . {additional_flags_both_steps} "
f"{additional_flags_first_step} {exclude_dirs_flag}"
)
status = os.system(flake8_first_step_cmd)
if os.name == "nt":
if status != 0:
print(f"Flake8 linter errors with status {status}")
else:
if os.WEXITSTATUS(status) != 0:
print(f"Flake8 linter errors with status {status}")
sys.exit(0)
additional_flags_second_step = (
'--exit-zero --max-complexity=10 --per-file-ignores="__init__.py:F401"'
)
if not os.path.exists("setup.cfg"):
additional_flags_second_step += " --max-line-length=100"
flake8_second_step_cmd = (
f"{python_exe} flake8 . {additional_flags_both_steps} "
f" {additional_flags_second_step} {exclude_dirs_flag}"
)
os.system(flake8_second_step_cmd)
if __name__ == "__main__":
main()

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
name = "eive-tmtc" name = "eive-tmtc"
description = "TMTC Commander EIVE" description = "TMTC Commander EIVE"
readme = "README.md" readme = "README.md"
version = "5.5.1" version = "5.6.0"
requires-python = ">=3.10" requires-python = ">=3.10"
license = {text = "Apache-2.0"} license = {text = "Apache-2.0"}
authors = [ authors = [
@ -43,3 +43,8 @@ include-package-data = true
# Auto-Discovery is problematic for some reason, so use custom-discovery # Auto-Discovery is problematic for some reason, so use custom-discovery
[tool.setuptools.packages] [tool.setuptools.packages]
find = {} find = {}
[tool.ruff]
ignore = ["E501"]
[tool.ruff.extend-per-file-ignores]
"__init__.py" = ["F401"]

View File

@ -7,7 +7,7 @@ Checklist for new releases
2. Update `CHANGELOG.md`: Convert `unreleased` section into version section 2. Update `CHANGELOG.md`: Convert `unreleased` section into version section
with date and new `unreleased`section. with date and new `unreleased`section.
3. Run auto-formatter with `black .` 3. Run auto-formatter with `black .`
4. Run linter with `flake8 .` 4. Run linter with `ruff .`
# Post-Release # Post-Release

View File

@ -1,12 +0,0 @@
#!/usr/bin/env python3
"""
We do the package handling in the static setup.cfg but include an empty setup.py
to allow editable installs https://packaging.python.org/tutorials/packaging-projects/
and provide extensibility
"""
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
setup()