Skip to main content

rdmysql3: A simple db layer based on CyMysql for Python 3.x

Installation

pip install [--no-deps] rdmysql3

Usage:

from datetime import datetime, date
from rdmysql3 import (Database, Table, Daily,
        Row, Expr, And, Or, iter_query_daily)
import settings

Database.configures.update(settings.MYSQL_CONFS)

class UserProfile(Table):
    __dbkey__ = 'user'
    __tablename__ = 't_user_profiles'
    __indexes__ = ['username']

class UserEvent(Daily):
    __dbkey__ = "default"
    __tablename__ = "t_user_events"

query = UserProfile().filter_by(username = 'ryan')
ryan = query.one(model = Row)
if ryan:
    print ryan.to_dict()
    now = datetime.now()
    today = now.strftime('%Y%m%d')
    ryan['changed_at'] = now.strftime('%Y-%m-%d %H:%M:%S')
    ryan.change('nickname', 'Ryan-%s' % today)
    query.save(ryan)
    print(query.db.sqls)


def get_all_logins(model):
    q = model.filter_by(category="login").order_by("id", "DESC")
    return q.all(model=Row, reset=True)
query = UserEvent()
rows = iter_query_daily(query, get_all_logins,
        stop=date(2024,3,1), fuse=True)
print(query.db.sqls)

Methods of Table

There are some methods for class named 'Table':

insert      param *rows
            param **kwargs

delete      param **where

update      param changes : dict
            param **where

save        param changes : dict / object
            param indexes : list (optional default=[])

filter      param expr : Expr / str
            param *args

filter_by   param **where

order_by    param field     : str
            param direction : 'ASC' / 'DESC' (optional default='ASC')

group_by    param field : str

all         param coulmns : str (optional default='*')
            param limit   : int (optional default=0)
            param offset  : int (optional default=0)

one         param coulmns : str   (optional default='*')
            param model   : class (optional default=dict)

apply       param name : str
            param *args
            param **kwargs

count,sum,max,min,avg       param *args
                            param **kwargs

Methods of Monthly/Weekly/Daily

Monthly is a subclass of Table, There are other two methods for Monthly:

backward    param monthes : int (optional default=1)

forward     param monthes : int (optional default=1)

set_date    param curr_date : date

migrate     param prev_date : date (When curr_has_suffix is False)

Release files for rdmysql3 0.3.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rdmysql3 0.3.8
File Size Uploaded
rdmysql3-0.3.8.tar.gz 12.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rdmysql3 0.3.8
File Interpreter ABI Platform
rdmysql3-0.3.8-py3-none-any.whl Python 3 none any Details

Total release size: 26.7 kB

Release files / rdmysql3-0.3.8.tar.gz

Download URL rdmysql3-0.3.8.tar.gz
Size 12.5 kB
Tags Source
SHA-256 checksum
How to use checksums
eff29051823532a6d1cf52a550e8beac74ae96dbd29fb5871bbd403a4aeaa3e5
BLAKE2b-256 checksum
How to use checksums
733c7e36063959c9eb9e6cf0308505327ebba2442d041170b594cceeed0d6edb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release files / rdmysql3-0.3.8-py3-none-any.whl

Download URL rdmysql3-0.3.8-py3-none-any.whl
Size 14.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
609ecccf383e30d2f4e7ab98169d5247c2690ed1a296293c2c7dba66d97d9772
BLAKE2b-256 checksum
How to use checksums
622d18e7c877564f5404eaaddd64dd729abcecda882f5edcb99fbb833bed5420
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release history Release notifications | RSS feed

This release

0.3.8 This release

2 release files

0.3.6

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page