Traducteur is the middle man to handle your basic data needs.
Project description
Traducteur
Traducteur is a database model manager and task sheduler which aims to make developing basic app with database models and tasks faster and easier.
Requirements
python ^3.8pydantic ^1.10.4
Optional
For mongo db:
pymongo ^4.3.3
For task queueing or redis model management:
redis-py ^4.4.2
The idea
Context managers
with BaseContext(connection_string) as db:
return db.get()
Model managers
Model managers use context managers
manager = BaseModelManager(connection_string)
result = manager.find_one(query)
result = manager.delete(query)
Models
Models use model managers
class User(BaseDatabaseModel):
username: str
fname: str
lname: str
email: str
user = User(
username='johndoe',
fname='John',
lname='Doe',
email='john.doe@mail.com'
)
'''
Easy create, save, update and delete
'''
user = User(
username='johndoe',
fname='John',
lname='Doe',
email='john.doe@mail.com'
)
# saving the model
user = user.save()
# saving also updates the model
user.lname = 'Joe'
user = user.save()
# getting a model by its ID from the database
user = User.get(user_id)
# deleting a model from the database
deleted_user = user.delete()
Tasks
Tasks use models
# in a program
def my_func(a: int, b: int) -> int:
return a + b
task = BaseTask(action=my_func)
task.queue(a=8, b=3)
###############
# in a worker #
task.digest() #
###############
# some time later
result = task.result()
Chain tasks
Tasks can be chained together for larger workloads
def double(number: int):
return {
'number': number * 2
}
# make tasks
one = BaseTask(action=double)
two = BaseTask(action=double)
three = BaseTask(action=double)
# chain tasks
two.set_parent(one)
three.set_parent(two)
# queue parent task
one.queue(number=2)
###############
# in a worker #
one.digest() #
###############
# some time later
result = one.result()
assert result == 8, "Should be 8 as 2*2*2 == 8"
Available functionality
Context managers
- MongoContext
- SQLite3Context
Model managers
- MongoModelManager
Models
- BaseMongoModel
- BaseRedisModel
Tasks
- RedisTask
Todo / in progress
Models
- SQLite support
Tasks
- Chain tasks
- Redis
- Mongo
- SQL
- Task worker
- Single Process
- Multi Process
- RabbitMQ task
Managers
- SQLite manager
Tests
Tests can be found in the tests folder. They use pythons unittest and can be run with:
python3 -m unittest path/to/test.py
Available tests
- Redis task
- Basic functions
- Chaining
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file traducteur-0.4.0.tar.gz.
File metadata
- Download URL: traducteur-0.4.0.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.1 CPython/3.9.16 Darwin/21.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfd5253598f61eecdf58ca002cf69f83a7c6590a723dc1d91e1a22f7cc8c6598
|
|
| MD5 |
3b2158830bb63fdf1f752c5044358086
|
|
| BLAKE2b-256 |
5ce30290d7c02fad60bddf8b581b47157cc9da4914ed61cae8e56359d4ddcbf5
|
File details
Details for the file traducteur-0.4.0-py3-none-any.whl.
File metadata
- Download URL: traducteur-0.4.0-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.1 CPython/3.9.16 Darwin/21.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7044ac1a27b6e3fe4264e63a4cd01826024bf3b8fc30d881b7a48e6a92f46a90
|
|
| MD5 |
90babdaaa66c9dc3b7663b3c72be3c64
|
|
| BLAKE2b-256 |
15cc249c7f194419410cc732e72e50d322078fec768fc124dcbc65f3c896bbd4
|