Skip to main content
Glama
northernvariables

FedMCP - Federal Parliamentary Information

config.py2.46 kB
"""Configuration management for data pipeline.""" import os from pathlib import Path from typing import Optional from dotenv import load_dotenv class Config: """Configuration loaded from environment variables.""" def __init__(self, env_file: Optional[Path] = None): """ Load configuration from .env file and environment variables. Args: env_file: Path to .env file (optional, defaults to .env in current directory) """ if env_file is None: # Look for .env in current directory, then parent directories current = Path.cwd() for parent in [current, *current.parents]: env_path = parent / ".env" if env_path.exists(): env_file = env_path break if env_file and env_file.exists(): load_dotenv(env_file) # Neo4j connection (required) self.neo4j_uri = os.getenv("NEO4J_URI") self.neo4j_user = os.getenv("NEO4J_USER", "neo4j") self.neo4j_password = os.getenv("NEO4J_PASSWORD") if not self.neo4j_uri or not self.neo4j_password: raise ValueError( "NEO4J_URI and NEO4J_PASSWORD must be set in environment or .env file" ) # PostgreSQL connection (optional, uses POSTGRES_URI or DATABASE_URL) self.postgres_uri = os.getenv("POSTGRES_URI") or os.getenv("DATABASE_URL") # CanLII API (optional) self.canlii_api_key = os.getenv("CANLII_API_KEY") # Pipeline configuration self.batch_size = int(os.getenv("BATCH_SIZE", "10000")) self.log_level = os.getenv("LOG_LEVEL", "INFO") self.incremental_lookback_days = int(os.getenv("INCREMENTAL_LOOKBACK_DAYS", "7")) def validate(self) -> None: """Validate configuration and test Neo4j connection.""" from .neo4j_client import Neo4jClient client = Neo4jClient(self.neo4j_uri, self.neo4j_user, self.neo4j_password) try: client.test_connection() print(f"✅ Neo4j connection successful: {self.neo4j_uri}") finally: client.close() def __repr__(self) -> str: return ( f"Config(neo4j_uri={self.neo4j_uri[:30]}..., " f"batch_size={self.batch_size}, " f"log_level={self.log_level}, " f"canlii_api_key={'***' if self.canlii_api_key else None})" )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/northernvariables/FedMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server