Merge pull request 'MIL-001 Project setup: pyproject, skeleton and Doxyfile' (#23) from mil-001-project-setup into main
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 7s

Reviewed-on: #23
This commit was merged in pull request #23.
This commit is contained in:
2026-10-04 17:30:02 +02:00
7 changed files with 3031 additions and 0 deletions
+3
View File
@@ -174,3 +174,6 @@ cython_debug/
# PyPI configuration file
.pypirc
# Doxygen output
docs/doxygen/
+2967
View File
File diff suppressed because it is too large Load Diff
+22
View File
@@ -0,0 +1,22 @@
[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
[project]
name = "higher-lower"
version = "0.1.0"
description = "Higher Lower console game: guess which Instagram account has more followers (Udemy 100 Days of Code, day 14)."
readme = "README.md"
requires-python = ">=3.13"
license = { file = "LICENSE" }
dependencies = []
[project.optional-dependencies]
dev = ["pytest>=8"]
[tool.setuptools.packages.find]
where = ["src"]
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src"]
+3
View File
@@ -0,0 +1,3 @@
"""@package higher_lower
@brief Higher Lower console game: guess which Instagram account has more followers.
"""
+14
View File
@@ -0,0 +1,14 @@
"""@file __main__.py
@brief Entry point for `python -m higher_lower`.
"""
def main() -> None:
"""@brief Start the game.
Placeholder: the game loop is implemented in MIL-003.
"""
if __name__ == "__main__":
main()
+6
View File
@@ -0,0 +1,6 @@
"""@file constants.py
@brief Constants shared by the game modules.
Constants are added here as the game logic (MIL-002) and the game loop
(MIL-003) need them.
"""
+16
View File
@@ -0,0 +1,16 @@
"""@file test_smoke.py
@brief Smoke test: the package and its entry point can be imported.
"""
import higher_lower
from higher_lower import __main__ as entry_point
def test_package_imports() -> None:
"""@brief The package imports without side effects."""
assert higher_lower.__doc__
def test_entry_point_is_callable() -> None:
"""@brief The entry point exists and can be called."""
assert entry_point.main() is None