From 574dd30d42f23cab7cfe19370bcb217e733784e6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 29 Dec 2025 09:08:08 +0000 Subject: [PATCH] Fix code review issues: use Boolean types, add error handling, remove unused imports Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com> --- backend/app.py | 8 ++++++-- backend/config_db_sqlalchemy.py | 4 ++-- backend/models.py | 7 +++---- seed_data/load_seed_data.py | 8 ++++++-- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/backend/app.py b/backend/app.py index 94166ed..758f329 100644 --- a/backend/app.py +++ b/backend/app.py @@ -26,8 +26,12 @@ CORS(app) # Load schema.json for reference SCHEMA_PATH = Path(__file__).parent.parent / "schema.json" -with open(SCHEMA_PATH) as f: - SCHEMA = json.load(f) +try: + with open(SCHEMA_PATH) as f: + SCHEMA = json.load(f) +except (FileNotFoundError, json.JSONDecodeError) as e: + print(f"Error loading schema.json: {e}") + SCHEMA = {"ops": {"limits": {"max_request_body_bytes": 2147483648}}} # Default fallback # Configuration is now loaded from database using SQLAlchemy # schema.json is only used once during initial database setup diff --git a/backend/config_db_sqlalchemy.py b/backend/config_db_sqlalchemy.py index 9930111..3d811fd 100644 --- a/backend/config_db_sqlalchemy.py +++ b/backend/config_db_sqlalchemy.py @@ -71,7 +71,7 @@ def load_schema_to_db(schema_path: Path): entity_id=entity.id, name=field_name, type=field_data['type'], - optional=1 if field_data.get('optional', False) else 0, + optional=field_data.get('optional', False), normalizations=json.dumps(field_data.get('normalize', [])) ) session.add(field) @@ -82,7 +82,7 @@ def load_schema_to_db(schema_path: Path): entity_id=entity.id, field=constraint['field'], regex=constraint['regex'], - when_present=1 if constraint.get('when_present', False) else 0 + when_present=constraint.get('when_present', False) ) session.add(constraint_obj) diff --git a/backend/models.py b/backend/models.py index a81bbea..6730d9a 100644 --- a/backend/models.py +++ b/backend/models.py @@ -6,8 +6,7 @@ This module defines the database schema using SQLAlchemy ORM. from datetime import datetime from sqlalchemy import ( - create_engine, Column, Integer, String, Text, Boolean, ForeignKey, - Table, MetaData + create_engine, Column, Integer, String, Text, Boolean, ForeignKey ) from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relationship, sessionmaker @@ -111,7 +110,7 @@ class EntityField(ConfigBase): entity_id = Column(Integer, ForeignKey('entities.id', ondelete='CASCADE'), nullable=False) name = Column(String(255), nullable=False) type = Column(String(64), nullable=False) - optional = Column(Integer, default=0) + optional = Column(Boolean, default=False) normalizations = Column(Text) # JSON entity = relationship("Entity", back_populates="fields") @@ -125,7 +124,7 @@ class EntityConstraint(ConfigBase): entity_id = Column(Integer, ForeignKey('entities.id', ondelete='CASCADE'), nullable=False) field = Column(String(255), nullable=False) regex = Column(Text, nullable=False) - when_present = Column(Integer, default=0) + when_present = Column(Boolean, default=False) entity = relationship("Entity", back_populates="constraints") diff --git a/seed_data/load_seed_data.py b/seed_data/load_seed_data.py index d04ffa4..80b692e 100755 --- a/seed_data/load_seed_data.py +++ b/seed_data/load_seed_data.py @@ -53,8 +53,12 @@ def publish_package(token: str, package: Dict[str, Any]) -> None: response = requests.put(url, headers=headers, data=content) if response.status_code == 201: - data = response.json() - print(f"✅ Published {namespace}/{name}:{version}@{variant} (digest: {data['digest'][:16]}...)") + try: + data = response.json() + digest = data.get('digest', 'unknown') + print(f"✅ Published {namespace}/{name}:{version}@{variant} (digest: {digest[:16]}...)") + except (ValueError, KeyError): + print(f"✅ Published {namespace}/{name}:{version}@{variant}") elif response.status_code == 409: print(f"⚠️ Package {namespace}/{name}:{version}@{variant} already exists, skipping") else: