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 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,2 @@
1
+ # awst
2
+ AWS Console Terminal UI - based on Textual
@@ -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,5 @@
1
+ from awst.skeleton_app import SkeletonApp
2
+
3
+
4
+ def main() -> None:
5
+ SkeletonApp().run()
@@ -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")