awst 0.1.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.
- awst-0.1.0/PKG-INFO +11 -0
- awst-0.1.0/README.md +2 -0
- awst-0.1.0/pyproject.toml +127 -0
- awst-0.1.0/src/awst/__init__.py +5 -0
- awst-0.1.0/src/awst/skeleton_app.py +18 -0
awst-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: awst
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Add your description here
|
|
5
|
+
Author: Bence Molnár
|
|
6
|
+
Requires-Dist: textual>=8.2.8
|
|
7
|
+
Requires-Python: >=3.14
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
|
|
10
|
+
# awst
|
|
11
|
+
AWS Console Terminal UI - based on Textual
|
awst-0.1.0/README.md
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "awst"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Add your description here"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
authors = [
|
|
7
|
+
{ name = "Bence Molnár" }
|
|
8
|
+
]
|
|
9
|
+
requires-python = ">=3.14"
|
|
10
|
+
dependencies = [
|
|
11
|
+
"textual>=8.2.8",
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
[dependency-groups]
|
|
15
|
+
dev = [
|
|
16
|
+
"pytest>=9.1.1",
|
|
17
|
+
"pytest-asyncio>=1.4.0",
|
|
18
|
+
"pytest-cov>=7.1.0",
|
|
19
|
+
"ruff>=0.15.20",
|
|
20
|
+
"textual-dev>=1.8.0",
|
|
21
|
+
"ty>=0.0.56",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
[project.scripts]
|
|
25
|
+
awst = "awst:main"
|
|
26
|
+
|
|
27
|
+
[build-system]
|
|
28
|
+
requires = ["uv_build>=0.11.26,<0.12.0"]
|
|
29
|
+
build-backend = "uv_build"
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
##### TESTING #####
|
|
33
|
+
|
|
34
|
+
[tool.pytest.ini_options]
|
|
35
|
+
addopts = "-v"
|
|
36
|
+
testpaths = ["tests"]
|
|
37
|
+
python_files = ["test_*.py", "*_test.py"]
|
|
38
|
+
|
|
39
|
+
[tool.coverage.run]
|
|
40
|
+
branch = true
|
|
41
|
+
source = ["src"]
|
|
42
|
+
relative_files = true
|
|
43
|
+
|
|
44
|
+
[tool.coverage.report]
|
|
45
|
+
exclude_also = [
|
|
46
|
+
"if TYPE_CHECKING:", # imports / code here is executed during mypy tests.
|
|
47
|
+
]
|
|
48
|
+
fail_under = 75
|
|
49
|
+
precision = 2
|
|
50
|
+
|
|
51
|
+
[tool.coverage.xml]
|
|
52
|
+
output = "build/coverage.xml"
|
|
53
|
+
|
|
54
|
+
#### LINTING ###
|
|
55
|
+
|
|
56
|
+
[tool.ruff]
|
|
57
|
+
# Set the maximum line length
|
|
58
|
+
line-length = 120
|
|
59
|
+
exclude = [".git", "__pycache__", ".venv", "build", "dist", "*.egg-info"]
|
|
60
|
+
|
|
61
|
+
[tool.ruff.lint]
|
|
62
|
+
# Enable these rule categories
|
|
63
|
+
select = [
|
|
64
|
+
"A", # flake8-builtins
|
|
65
|
+
"ARG", # flake8-unusued-arguments
|
|
66
|
+
"ANN", # flake8-annotations
|
|
67
|
+
"ASYNC", # flake8-async
|
|
68
|
+
"B", # flake8-bugbear
|
|
69
|
+
"BLE", # flake8-blind-except
|
|
70
|
+
"FBT", # flake8-boolean-trap
|
|
71
|
+
"C4", # flake8-comprehensions
|
|
72
|
+
"C90", # McCabe Complexity
|
|
73
|
+
"DTZ", # flake8-datetimez
|
|
74
|
+
"E", # pycodestyle
|
|
75
|
+
"EM", # flake8-errmsg
|
|
76
|
+
"F", # Pyflakes
|
|
77
|
+
"G", # flake8-logging-format
|
|
78
|
+
"FLY", # Flynt
|
|
79
|
+
"I", # isort
|
|
80
|
+
"ICN", # flake8-import-conventions
|
|
81
|
+
"N", # PEP8 Naming
|
|
82
|
+
"PERF", # Perflint
|
|
83
|
+
"PIE", # flake8-pie
|
|
84
|
+
"PL", # Pylint
|
|
85
|
+
"PT", # flake8-pytest-style
|
|
86
|
+
"PTH", # flake8-use-pathlib
|
|
87
|
+
"RET", # flake8-return
|
|
88
|
+
"RUF", # Ruff-specific
|
|
89
|
+
"RSE", # flake8-raise
|
|
90
|
+
"S", # flake8-bandit
|
|
91
|
+
"SIM", # flake8-simplify
|
|
92
|
+
"SLF001", # flake8-self private-member-access
|
|
93
|
+
"SLOT", # flake8-slots
|
|
94
|
+
"TCH", # flake8-typechecking
|
|
95
|
+
"TID", # flake8-tidy-imports
|
|
96
|
+
"TRY", # tryceratops
|
|
97
|
+
"T20", # flake8-print
|
|
98
|
+
"T100", # flake8-debugger
|
|
99
|
+
"UP", # pyupgrade
|
|
100
|
+
"W", # pycodestyle
|
|
101
|
+
]
|
|
102
|
+
|
|
103
|
+
[tool.ruff.lint.per-file-ignores]
|
|
104
|
+
# Tests can have more flexible rules
|
|
105
|
+
"tests/**/*.py" = [
|
|
106
|
+
"ARG001", # Pytest fixtures appear as unused function arguments
|
|
107
|
+
"PLR2004", # Magic value used in comparison
|
|
108
|
+
"PLC0415", # Local imports inside test functions are a common pattern
|
|
109
|
+
"S101", # Use of assert
|
|
110
|
+
"S105",
|
|
111
|
+
"S106",
|
|
112
|
+
"S107",
|
|
113
|
+
"T201", # Print statements in tests
|
|
114
|
+
]
|
|
115
|
+
|
|
116
|
+
[tool.ruff.lint.isort]
|
|
117
|
+
force-sort-within-sections = true
|
|
118
|
+
split-on-trailing-comma = true
|
|
119
|
+
|
|
120
|
+
[tool.ruff.lint.pydocstyle]
|
|
121
|
+
convention = "pep257"
|
|
122
|
+
|
|
123
|
+
[tool.ruff.lint.flake8-quotes]
|
|
124
|
+
# Use double quotes
|
|
125
|
+
docstring-quotes = "double"
|
|
126
|
+
inline-quotes = "double"
|
|
127
|
+
multiline-quotes = "double"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Skeleton app for testing the awstui package.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from typing import Self
|
|
6
|
+
|
|
7
|
+
from textual.app import App, ComposeResult
|
|
8
|
+
from textual.widgets import Label
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SkeletonApp(App):
|
|
12
|
+
CSS = """
|
|
13
|
+
Screen { align: center middle; }
|
|
14
|
+
Label { width: auto; }
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
def compose(self: Self) -> ComposeResult:
|
|
18
|
+
yield Label("Hello AWS TUI")
|