TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #397 · 12 ное.

Использование Pydantic сегодня стало нормой, и это правильно. Но иногда на ревью вижу, что используют его не всегда корректно. Например, метод BaseModel.model_dump() по умолчанию не преобразует стандартные типы, такие как datetime, UUID или Decimal, в простой сериализуемый для JSON вид. Тогда пишут кастмоный сериализатор для этих типов чтобы функция json.dump() не падала с ошибкой. import uuid from datetime import datetime from decimal import Decimal from uuid import UUID from pydantic import BaseModel class MyModel(BaseModel): id: UUID date: datetime value: Decimal obj = MyModel( id=uuid.uuid4(), date=datetime.now(), value='1.23' ) print(obj.model_dump()) # не подходит для json.dump # { # 'id': UUID('4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1'), # 'date': datetime.datetime(2025, 12, 12, 12, 12, 12, 111111), # 'value': Decimal('1.23') # } # добавляем свой кастомный сериализатор json.dumps(obj.model_dump(), cls=MySerializer) # { # 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1', # 'date': '2025-12-12T12:12:12.111111', # 'value': '1.23' # } В данном случае класс MySerializer обрабатывает datetime, UUID и Decimal. Например так: class MySerializer(json.JSONEncoder): def default(self, o): if isinstance(o, Decimal): return str(o) elif isinstance(o, datetime): return o.isoformat() elif isinstance(o, UUID): return str(o) return super().default(o) Специально для тех, кто всё еще так делает - в этом нет необходимости! Pydantic может это сделать сам, просто нужно добавить параметр mode="json". json.dumps(obj.model_dump(mode="json")) # { # 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1', # 'date': '2012-12-12T12:12:12.111111', # 'value': '1.23' # } #pydantic#libs

Резултати

Пронајдени 1 слични објави

Пребарај: #phonetrack

当前筛选 #phonetrack清除筛选
Libreware

@libreware · Post #1223 · 11.02.2024 г., 23:51

. You can log and track the phone locations of your family and friends in complete privacy, using your Nextcloud server. To do this you need to install the Nextcloud PhoneTrack App on your Nextcloud server, and the Android PhoneTrack App on every DeGoogled phone you want to track. The F-Droid version is old and buggy. To get the newer Dev Android version, you: 1. Go to the PhoneTrack Dev GitLab page, scroll down and click the "APK Direct Download" link 2. At top "Pipeline" option, click the Download arrow and select "AssembleDevDebug:archive" 3. This downloads a zip file. Extract the zip and install the APK. CONNECT ALL PHONES AND TRACK 4. On Nextcloud create a dedicated account for PhoneTracking. 5. Create a PhoneTrack "Session" in the Nextcloud PhoneTrack app. 6. Sign each phone into the Nextcloud PhoneTrack account, and on the phone, add a "PhoneTrack log job" to the Session on Nextcloud. ⚡️@LinuxTechIndex #PhoneTrack#Tracker#Nextcloud