Packages
snakepit
0.7.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
High-performance pooler and session manager for external language integrations. Supports Python, Node.js, Ruby, and more with gRPC streaming, session management, and production-ready process cleanup.
Current section
Files
Jump to
Current section
Files
priv/python/generate_proto.py
#!/usr/bin/env python3
"""
Generate Python gRPC code from protobuf files.
"""
import os
import sys
import subprocess
def main():
# Get the directory paths
script_dir = os.path.dirname(os.path.abspath(__file__))
project_root = os.path.abspath(os.path.join(script_dir, '..', '..'))
proto_dir = os.path.join(project_root, 'priv', 'proto')
output_dir = os.path.join(script_dir, 'snakepit_bridge')
# Ensure output directory exists
os.makedirs(output_dir, exist_ok=True)
# Proto file
proto_file = os.path.join(proto_dir, 'snakepit_bridge.proto')
# Generate Python code
cmd = [
'python', '-m', 'grpc_tools.protoc',
f'--proto_path={proto_dir}',
f'--python_out={output_dir}',
f'--grpc_python_out={output_dir}',
proto_file
]
print(f"Generating Python gRPC code...")
print(f"Command: {' '.join(cmd)}")
try:
result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode != 0:
print(f"Error: {result.stderr}")
sys.exit(1)
else:
print("Successfully generated Python gRPC code!")
# Fix imports in the generated files
grpc_file = os.path.join(output_dir, 'snakepit_bridge_pb2_grpc.py')
if os.path.exists(grpc_file):
with open(grpc_file, 'r') as f:
content = f.read()
# Replace absolute import with relative import
content = content.replace('import snakepit_bridge_pb2', 'from . import snakepit_bridge_pb2')
with open(grpc_file, 'w') as f:
f.write(content)
print("Fixed imports in generated files.")
except Exception as e:
print(f"Error running protoc: {e}")
sys.exit(1)
if __name__ == '__main__':
main()