Caesium
A set of document revision and scheduling tools for Python's fantastic Tornado and Motor frameworks.
Install / Use
/learn @urbn/CaesiumREADME
#Caesium
Caesium is a restful resource framework with a focus on document scheduling. Proudly built on top of MongoDB, Tornado, and Motor frameworks.
##API Documentation ##CaesiumQuickstart
##Compatibility
Currently it works on python 2.7 only, but 3.3 will be supported soon.
##Installation
Installation is handled the normal way and brings all required dependencies as well.
pip install caesium
##Build Status
#Key Feaures
- Schedule create, update and delete actions at a UTC timestamp, supports document inheritance by default
- Revisions are kept in separate collections per resource type
- Simple to data structure, everything is lists of dictionaries adapted to primitives
- Uses coroutines by default and won't block unless you call yield in your handlers
- Supports JSON Schema models for validation
- Revisions are kept in separate collections <type>_revisions, which can be ideal for some microservice implementations
##Document API (ASyncMotorDocument)
One of the simplest to use portions of the frame work is the ASyncMotorDocument class. It adds a thin layer over the motor framework to vend primitive objects for use in your handler classes.
##Base Handlers
There are several base handlers you can leverage to speed up your development. l
- BaseHandler, base utilities for creating mongo queries from user input
- BaseMotorSearch, A simple endpoint for querying an object of a given type
- BaseRestfulMotorHandler, A conventions based handler for creating schedulable RESTful resources
- RevisionHandler, An implementation for dealing with revisions of various types
- BaseBulkScheduleableUpdateHandler, can schedule many updates or deletes to objects of a given type by passing an array of ids
##Scheduling
Requests that you want to schedule should have a "Caesium-TOA" header with a UTC timestamp as the value for the time you would like this document to be scheduled.
Scheduled actions map to RESTful verbs:
- POST with Caesium-TOA header would be a scheduled insert
- PUT with Caesium-TOA header is a scheduled PATCH to the object via mongo $set query
- DELETE with Caesium-TOA is a scheduled delete from the master collection Note: Deletes do not delete from the revisions collection for that object type, which can allow for easy reverts, but a potentially large database
The primary way to interact with the scheduling system is to use the "Caesium-TOA" header and set a utc timestamp to the time you want your action to be performed.
Related Skills
node-connect
349.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
