diff --git a/06/alchemy/__init__.py b/06/alchemy/__init__.py new file mode 100644 index 0000000..72b6ba4 --- /dev/null +++ b/06/alchemy/__init__.py @@ -0,0 +1,5 @@ +from .elements import create_fire, create_water + +__version__ = "1.0.0" +__author__ = "Master Pythonicus" +__all__ = [create_fire(), create_water()] diff --git a/06/alchemy/elements.py b/06/alchemy/elements.py new file mode 100644 index 0000000..3d8525f --- /dev/null +++ b/06/alchemy/elements.py @@ -0,0 +1,14 @@ +def create_fire() -> str: + return "Fire element created" + + +def create_water() -> str: + return "Water element created" + + +def create_earth() -> str: + return "Earth element created" + + +def create_air() -> str: + return "Air element created" diff --git a/06/ft_sacred_scroll.py b/06/ft_sacred_scroll.py new file mode 100644 index 0000000..9aa7480 --- /dev/null +++ b/06/ft_sacred_scroll.py @@ -0,0 +1,32 @@ +def main() -> None: + import alchemy + + print("=== Sacred Scroll Mastery ===\n") + print("Testing direct module access:") + print(f"alchemy.elements.create_fire(): {alchemy.elements.create_fire()}") + print( + f"alchemy.elements.create_water(): {alchemy.elements.create_water()}" + ) + print( + f"alchemy.elements.create_earth(): {alchemy.elements.create_earth()}" + ) + print(f"alchemy.elements.create_air(): {alchemy.elements.create_air()}") + print("\nTesting package-level access (controlled by __init__.py):") + print(f"alchemy.create_fire(): {alchemy.create_fire()}") + print(f"alchemy.create_water(): {alchemy.create_water()}") + + print("alchemy.create_earth(): ", end="") + try: + print(f"{alchemy.create_earth()}") + except AttributeError: + print("AttributeError - not exposed") + + print("alchemy.create_air(): ", end="") + try: + print(f"{alchemy.create_air()}") + except AttributeError: + print("AttributeError - not exposed") + + +if __name__ == "__main__": + main()