Created
February 18, 2025 00:40
-
-
Save akishore15/d3505f116320e34dab4a12fa6598f5fc to your computer and use it in GitHub Desktop.
Open-source package manager in Python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import subprocess | |
import sys | |
import os | |
# Global buffer to store code snippets | |
snippet_buffer = {} | |
def install_package(package_name): | |
try: | |
subprocess.check_call([sys.executable, "-m", "pip", "install", package_name]) | |
print(f"Successfully installed {package_name}") | |
except subprocess.CalledProcessError as e: | |
print(f"Error installing package {package_name}: {e}") | |
def uninstall_package(package_name): | |
try: | |
subprocess.check_call([sys.executable, "-m", "pip", "uninstall", "-y", package_name]) | |
print(f"Successfully uninstalled {package_name}") | |
except subprocess.CalledProcessError as e: | |
print(f"Error uninstalling package {package_name}: {e}") | |
def add_snippet_from_file(snippet_name, file_name): | |
if os.path.isfile(file_name): | |
with open(file_name, 'r') as file: | |
code = file.read() | |
snippet_buffer[snippet_name] = code | |
print(f"Snippet '{snippet_name}' added to the buffer from file '{file_name}'.") | |
else: | |
print(f"File '{file_name}' not found.") | |
def view_snippets(): | |
if snippet_buffer: | |
print("Current Snippets in Buffer:") | |
for name, code in snippet_buffer.items(): | |
print(f"Name: {name}\nCode:\n{code}\n") | |
else: | |
print("No snippets in the buffer.") | |
def remove_snippet(snippet_name): | |
if snippet_name in snippet_buffer: | |
del snippet_buffer[snippet_name] | |
print(f"Snippet '{snippet_name}' removed from the buffer.") | |
else: | |
print(f"Snippet '{snippet_name}' not found in the buffer.") | |
def main(): | |
if len(sys.argv) < 2: | |
print("Usage: python apackg.py [install|uninstall|add|view|remove] [package_name|snippet_name] [file_name]") | |
return | |
command = sys.argv[1] | |
if command == "install": | |
if len(sys.argv) >= 3: | |
package_name = sys.argv[2] | |
install_package(package_name) | |
else: | |
print("Usage: python apackg.py install <package_name>") | |
elif command == "uninstall": | |
if len(sys.argv) >= 3: | |
package_name = sys.argv[2] | |
uninstall_package(package_name) | |
else: | |
print("Usage: python apackg.py uninstall <package_name>") | |
elif command == "add": | |
if len(sys.argv) >= 4: | |
snippet_name = sys.argv[2] | |
file_name = sys.argv[3] | |
add_snippet_from_file(snippet_name, file_name) | |
else: | |
print("Usage: python apackg.py add <snippet_name> <file_name>") | |
elif command == "view": | |
view_snippets() | |
elif command == "remove": | |
if len(sys.argv) >= 3: | |
snippet_name = sys.argv[2] | |
remove_snippet(snippet_name) | |
else: | |
print("Usage: python apackg.py remove <snippet_name>") | |
else: | |
print(f"Unknown command: {command}") | |
print("Usage: python apackg.py [install|uninstall|add|view|remove] [package_name|snippet_name] [file_name]") | |
if __name__ == "__main__": | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment