]> Untitled Git - axy/ft/python04.git/commitdiff
Implement Data Archivist exercises ex0-ex4
authorAxy <gilliardmarthey.axel@gmail.com>
Mon, 12 Jan 2026 15:22:08 +0000 (16:22 +0100)
committerAxy <gilliardmarthey.axel@gmail.com>
Mon, 12 Jan 2026 15:22:08 +0000 (16:22 +0100)
ex0/ft_ancient_text.py [new file with mode: 0644]
ex1/ft_archive_creation.py [new file with mode: 0644]
ex2/ft_stream_management.py [new file with mode: 0644]
ex3/ft_vault_security.py [new file with mode: 0644]
ex4/ft_crisis_response.py [new file with mode: 0644]
pyproject.toml [new file with mode: 0644]

diff --git a/ex0/ft_ancient_text.py b/ex0/ft_ancient_text.py
new file mode 100644 (file)
index 0000000..c924fb9
--- /dev/null
@@ -0,0 +1,25 @@
+import os
+
+
+def main():
+    filename = "ancient_fragment.txt"
+    print("=== CYBER ARCHIVES - DATA RECOVERY SYSTEM ===")
+    print(f"Accessing Storage Vault: {filename}")
+
+    if not os.path.exists(filename):
+        print("ERROR: Storage vault not found. Run data generator first.")
+        return
+
+    try:
+        print("Connection established...")
+        print("RECOVERED DATA:")
+        with open(filename, "r") as f:
+            content = f.read().strip()
+            print(content)
+        print("Data recovery complete. Storage unit disconnected.")
+    except Exception as e:
+        print(f"Error accessing vault: {e}")
+
+
+if __name__ == "__main__":
+    main()
diff --git a/ex1/ft_archive_creation.py b/ex1/ft_archive_creation.py
new file mode 100644 (file)
index 0000000..3e9e1be
--- /dev/null
@@ -0,0 +1,28 @@
+def main():
+    filename = "new_discovery.txt"
+    print("=== CYBER ARCHIVES - PRESERVATION SYSTEM ===")
+    print(f"Initializing new storage unit: {filename}")
+
+    try:
+        print("Storage unit created successfully...")
+        print("Inscribing preservation data...")
+
+        with open(filename, "w") as f:
+            entries = [
+                "[ENTRY 001] New quantum algorithm discovered",
+                "[ENTRY 002] Efficiency increased by 347%",
+                "[ENTRY 003] Archived by Data Archivist trainee",
+            ]
+            for entry in entries:
+                f.write(entry + "\n")
+                print(entry)
+
+        print("Data inscription complete. Storage unit sealed.")
+        print(f"Archive '{filename}' ready for long-term preservation.")
+
+    except Exception as e:
+        print(f"Error: {e}")
+
+
+if __name__ == "__main__":
+    main()
diff --git a/ex2/ft_stream_management.py b/ex2/ft_stream_management.py
new file mode 100644 (file)
index 0000000..3f4b039
--- /dev/null
@@ -0,0 +1,20 @@
+import sys
+
+
+def main():
+    print("=== CYBER ARCHIVES - COMMUNICATION SYSTEM ===")
+
+    arch_id = input("Input Stream active. Enter archivist ID: ")
+    status = input("Input Stream active. Enter status report: ")
+
+    sys.stdout.write(f"[STANDARD] Archive status from {arch_id}: {status}\n")
+    sys.stderr.write(
+        "[ALERT] System diagnostic: Communication channels verified\n"
+    )
+    sys.stdout.write("[STANDARD] Data transmission complete\n")
+
+    print("Three-channel communication test successful.")
+
+
+if __name__ == "__main__":
+    main()
diff --git a/ex3/ft_vault_security.py b/ex3/ft_vault_security.py
new file mode 100644 (file)
index 0000000..008ede9
--- /dev/null
@@ -0,0 +1,29 @@
+def main():
+    print("=== CYBER ARCHIVES - VAULT SECURITY SYSTEM ===")
+    print("Initiating secure vault access...")
+    print("Vault connection established with failsafe protocols")
+
+    # Secure Extraction (Read)
+    print("SECURE EXTRACTION:")
+    try:
+        with open("classified_data.txt", "r") as f:
+            print(f.read().strip())
+    except FileNotFoundError:
+        print("Error: classified_data.txt not found")
+
+    # Secure Preservation (Write)
+    print("SECURE PRESERVATION:")
+    try:
+        with open("security_protocols.txt", "w") as f:
+            data = "[CLASSIFIED] New security protocols archived"
+            f.write(data)
+            print(data)
+    except Exception as e:
+        print(f"Error writing to vault: {e}")
+
+    print("Vault automatically sealed upon completion")
+    print("All vault operations completed with maximum security.")
+
+
+if __name__ == "__main__":
+    main()
diff --git a/ex4/ft_crisis_response.py b/ex4/ft_crisis_response.py
new file mode 100644 (file)
index 0000000..9bb19bb
--- /dev/null
@@ -0,0 +1,62 @@
+import os
+
+
+def crisis_handler(filename):
+    # Setup for permission error test
+    if filename == "classified_vault.txt":
+        try:
+            with open(filename, "w") as f:
+                f.write("TOP SECRET")
+            os.chmod(filename, 0o000)  # Make unreadable
+        except OSError as e:
+            print(f"Setup error for {filename}: {e}")
+
+    # Determine log prefix
+    if filename == "standard_archive.txt":
+        print(f"ROUTINE ACCESS: Attempting access to '{filename}'...")
+    else:
+        print(f"CRISIS ALERT: Attempting access to '{filename}'...")
+
+    try:
+        with open(filename, "r") as f:
+            content = f.read().strip()
+            print(
+                f'SUCCESS: Archive recovered - "{content}"'
+            )  # Note: escaped quote here is intentional
+            print("STATUS: Normal operations resumed")
+    except FileNotFoundError:
+        print("RESPONSE: Archive not found in storage matrix")
+        print("STATUS: Crisis handled, system stable")
+    except PermissionError:
+        print("RESPONSE: Security protocols deny access")
+        print("STATUS: Crisis handled, security maintained")
+    except Exception as e:
+        print(f"RESPONSE: Unexpected error: {e}")
+        print("STATUS: Crisis handled")
+    finally:
+        # Cleanup for permission error test
+        if filename == "classified_vault.txt" and os.path.exists(filename):
+            try:
+                os.chmod(filename, 0o666)  # Restore permissions
+                os.remove(filename)
+            except OSError:
+                pass
+
+
+def main():
+    print("=== CYBER ARCHIVES - CRISIS RESPONSE SYSTEM ===")
+
+    test_files = [
+        "lost_archive.txt",
+        "classified_vault.txt",
+        "standard_archive.txt",
+    ]
+
+    for filename in test_files:
+        crisis_handler(filename)
+
+    print("All crisis scenarios handled successfully. Archives secure.")
+
+
+if __name__ == "__main__":
+    main()
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644 (file)
index 0000000..a8f43fe
--- /dev/null
@@ -0,0 +1,2 @@
+[tool.black]
+line-length = 79