Skip to content
Snippets Groups Projects
Commit 95a424ac authored by geant-release-service's avatar geant-release-service
Browse files

Finished release 0.9.

parents 676d5a98 9d11debb
Branches
Tags
No related merge requests found
# Changelog
## [0.9] - 2025-03-28
- Add version endpoint
- Fix the encoding issue with the windows clients
## [0.8] - 2025-03-27
- No change, just a new release
......
......@@ -76,7 +76,9 @@ class CSVUploadForm(forms.Form):
self._validate_file_type(file)
# Step 2: Parse file and validate headers
csv_file = file.read().decode("utf-8").splitlines()
raw_data = file.read().decode("utf-8-sig")
normalized_data = raw_data.replace("\r\n", "\n").replace("\r", "\n")
csv_file = normalized_data.splitlines()
reader = csv.DictReader(csv_file, delimiter=",")
fieldnames = reader.fieldnames if reader.fieldnames is not None else []
self._validate_headers(fieldnames)
......
"""Views for the file_validator app."""
import csv
import io
from importlib.metadata import PackageNotFoundError
from importlib.metadata import version as get_version
from typing import ClassVar
from django.http import HttpRequest, HttpResponse
from django.http.response import JsonResponse
from django.shortcuts import render
from django.urls import reverse_lazy
from django.utils import timezone
......@@ -23,6 +26,14 @@ def index_view(request: HttpRequest) -> HttpResponse:
return render(request, "index.html")
def version_view(_request: HttpRequest) -> JsonResponse:
"""Return the module version as JSON."""
try:
module_version = get_version("sage-validation")
except PackageNotFoundError:
module_version = "unknown"
return JsonResponse({"module": module_version})
def upload_page_view(request: HttpRequest) -> HttpResponse:
"""Render the file upload page."""
return render(request, "upload.html")
......@@ -42,7 +53,7 @@ class CSVUploadAPIView(APIView):
csv_file = form.cleaned_data["file"]
csv_file.seek(0)
decoded_file = csv_file.read().decode("utf-8").strip()
decoded_file = csv_file.read().decode("utf-8-sig").strip()
if not decoded_file:
return Response({"status": "error", "message": "Uploaded file is empty."},
......
......@@ -3,7 +3,7 @@ from django.contrib import admin
from django.urls import path
from django.urls.conf import include
from sage_validation.file_validator.views import index_view
from sage_validation.file_validator.views import index_view, version_view
urlpatterns = [
path("admin/", admin.site.urls),
......@@ -11,4 +11,5 @@ urlpatterns = [
path("", index_view, name="index"),
path("", include("social_django.urls", namespace="social")),
path("accounts/", include("sage_validation.accounts.urls")),
path("version/", version_view, name="version"),
]
......@@ -3,7 +3,7 @@ from setuptools import find_packages, setup
setup(
name="sage-validation",
version="0.8",
version="0.9",
packages=find_packages(),
include_package_data=True,
install_requires=[
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment