db Package

db Package

class okcupyd.db.Query(entities, session=None)[source]

Bases: sqlalchemy.orm.query.Query

class okcupyd.db.txn(session_class=None)[source]

Bases: object

okcupyd.db.with_txn(function, instance, args, kwargs)[source]
class okcupyd.db.OKCBase(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

okc_id = Column(None, StringBackedInteger(), table=None, nullable=False)
okcupyd.db.reset_engine(engine)[source]
okcupyd.db.set_sqlite_db_file(file_path)[source]

adapters Module

class okcupyd.db.adapters.UserAdapter(profile)[source]

Bases: object

build(session)[source]
get_no_txn(session)[source]
get(session)
class okcupyd.db.adapters.ThreadAdapter(thread)[source]

Bases: object

add_messages()[source]
get_thread()[source]

mailbox Module

class okcupyd.db.mailbox.Sync(user)[source]

Bases: object

Sync messages from a users inbox to the okc database.

all()[source]
update_mailbox[source]

Update the mailbox associated with the given mailbox name.

inbox

Update the mailbox associated with the given mailbox name.

outbox

Update the mailbox associated with the given mailbox name.

types Module

class okcupyd.db.types.JSONType(*args, **kwargs)[source]

Bases: sqlalchemy.sql.type_api.TypeDecorator

impl

alias of VARCHAR

process_bind_param(value, dialect)[source]
process_result_value(value, dialect)[source]
class okcupyd.db.types.StringBackedInteger(*args, **kwargs)[source]

Bases: sqlalchemy.sql.type_api.TypeDecorator

impl

alias of VARCHAR

process_bind_param(value, dialect)[source]
process_result_value(value, dialect)[source]

user Module

okcupyd.db.user.have_messaged_by_username_no_txn(session, username_one, username_two)[source]
okcupyd.db.user.have_messaged_by_username(session, username_one, username_two)[source]
okcupyd.db.user.and_(*clauses)

Produce a conjunction of expressions joined by AND.

E.g.:

from sqlalchemy import and_

stmt = select([users_table]).where(
                and_(
                    users_table.c.name == 'wendy',
                    users_table.c.enrolled == True
                )
            )

The and_() conjunction is also available using the Python & operator (though note that compound expressions need to be parenthesized in order to function with Python operator precedence behavior):

stmt = select([users_table]).where(
                (users_table.c.name == 'wendy') &
                (users_table.c.enrolled == True)
            )

The and_() operation is also implicit in some cases; the Select.where() method for example can be invoked multiple times against a statement, which will have the effect of each clause being combined using and_():

stmt = select([users_table]).\
            where(users_table.c.name == 'wendy').\
            where(users_table.c.enrolled == True)

See also

or_()

okcupyd.db.user.or_(*clauses)

Produce a conjunction of expressions joined by OR.

E.g.:

from sqlalchemy import or_

stmt = select([users_table]).where(
                or_(
                    users_table.c.name == 'wendy',
                    users_table.c.name == 'jack'
                )
            )

The or_() conjunction is also available using the Python | operator (though note that compound expressions need to be parenthesized in order to function with Python operator precedence behavior):

stmt = select([users_table]).where(
                (users_table.c.name == 'wendy') |
                (users_table.c.name == 'jack')
            )

See also

and_()