#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright (C) 2024-2025 Étienne Loks # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # See the file COPYING for details. from datetime import datetime class UnderscoreSlug: regex = '[_0-9a-z]+' def to_python(self, value): return str(value) def to_url(self, value): return str(value) class DateTimeConverter: regex = r"\d{4}-\d{1,2}-\d{1,2}T\d{1,2}\:\d{1,2}\:\d{1,2}\.\d{1,6}" date_format = '%Y-%m-%dT%H:%M:%S.%f' def to_python(self, value): return datetime.strptime(value, self.date_format) def to_url(self, value): if isinstance(value, datetime): return value.strftime(self.date_format) return value