예제 #1
0
 class Holder:
     int_field=fields.IntField(nullable=False)
     int_field_nullable=fields.IntField(nullable=True)
     int_field_sqlname=fields.IntField(sql_name='not_int_field_sqlname')
     smallint_field=fields.SmallIntField()
     bigint_field=fields.BigIntField()
     context_int_field=fields.IntField(context_used='int_context')
     sequence_int_field=sequences.SequenceIntField(sequence=field_test_seq)
     row_enum_int_field=fields.RowEnumIntField(context_used='row_context')
     numeric_field=fields.NumericField(precision=6, scale=2)
     numeric_field_from_floats=fields.NumericField(precision=6, scale=2, allow_floats=True)
     numeric_field_inexact_quantize=fields.NumericField(precision=6, scale=2, inexact_quantize=True)
     real_field=fields.RealField()
     boolean_field=fields.BooleanField()
     text_field=fields.TextField()
     varchar_field=fields.VarCharField(max_length=5)
     varchar_field_truncate=fields.VarCharField(max_length=5, silent_truncate=True)
     char_field=fields.CharField(max_length=3)
     timestamp_field=fields.TimestampField(tz=True)
     timestamp_notz_field=fields.TimestampField(tz=False)
     utcnowtimestamp_field=fields.UTCNowTimestampField()
     time_field=fields.TimeField()
     utcnowtime_field=fields.UTCNowTimeField()
     date_field=fields.DateField()
     todaydate_field=fields.TodayDateField()
     blob_field=fields.BlobField()
예제 #2
0
class SimpleTransactionView(views.SQLView,
                            view_name='simple_view',
                            version='0.0.1',
                            query=SIMPLEVIEW_QUERY,
                            schema=accounting):
    tid = fields.IntField(context_used='tid')
    creator = fields.CharField(max_length=3)
    creation_ts = fields.TimestampField(tz=False)
    t_rev = fields.BooleanField()
    narrative = fields.TextField()
    row_id = fields.IntField()
    account = fields.IntField()
    amount = fields.NumericField(precision=8, scale=2, allow_floats=True)
예제 #3
0
class JournalTable(tables.SQLTable,
                   table_name='journals',
                   version='11.0',
                   schema=accounting):
    tid = fields.IntField(context_used='tid')
    row_id = fields.RowEnumIntField(context_used='row_id', starting_number=1)
    account = fields.IntField()
    amount = fields.NumericField(precision=8, scale=2, allow_floats=True)
    journals_cons_pk = constraints.PrimaryKeyConstraint(
        column_names=('tid', 'row_id'))
    journals_cons_fk = constraints.ForeignKeyConstraint(
        column_names=('tid', ),
        foreign_table='transactions',
        foreign_schema=accounting)
예제 #4
0
class SetAccountTotal(example_schema.AccountingTransaction):
    account = fields.IntField()
    desired_sum = fields.NumericField(precision=8, scale=2, allow_floats=True)
    current_sum = fields.NumericField(precision=8, scale=2, allow_floats=True,
                                      inexact_quantize=True, query=SumAccountQuery)

    def _pre_insert_hook(self, context, cursor):
        super()._pre_insert_hook(context, cursor)

        if self.transaction is None:
            self.transaction = example_schema.TransactionTable()
        if self.journal_list is None:
            self.journal_list = example_schema.JournalList()

        self.transaction.narrative = 'Adjusting account {} to {}'.format(self.account,
                                                                         self.desired_sum)
        self.transaction.creator = 'SYS'
        self.transaction.t_rev = False
        posting_needed = self.desired_sum - self.current_sum

        self.journal_list._clear()
        self.journal_list._append(example_schema.JournalTable(account=self.account, amount=posting_needed))
        self.journal_list._append(example_schema.JournalTable(account=9999, amount=-posting_needed))

        return True
예제 #5
0
파일: conftest.py 프로젝트: jhumphry/pyxact
 class SampleView(
         views.SQLView,
         view_name='sample_view',
         query='SELECT trans_id AS tid, amount AS amount FROM sample_table'
 ):
     tid = fields.IntField()
     amount = fields.NumericField(precision=6, scale=2, allow_floats=True)
예제 #6
0
class TransactionTable(tables.SQLTable,
                       table_name='transactions',
                       version='2',
                       schema=accounting):
    tid = fields.IntField(context_used='tid')
    creator = fields.CharField(max_length=3)
    creation_ts = fields.TimestampField(tz=False, context_used='creation_ts')
    t_rev = fields.BooleanField(sql_name='t_rev')
    narrative = fields.TextField()
    transactions_cons_pk = constraints.PrimaryKeyConstraint(
        column_names=('tid'))
예제 #7
0
class SimpleQuery(queries.SQLQuery,
                  query='SELECT {alpha}+{beta} AS answer;',
                  record_type=SingleIntRow):
    alpha = fields.IntField()
    beta = fields.IntField()
예제 #8
0
class ComplexQuery(queries.SQLQuery,
                   query=complex_query_text,
                   record_type=ComplexQueryRecord):
    alpha = fields.IntField()
    beta = fields.IntField()
예제 #9
0
class QueryTransaction(transactions.SQLTransaction):
    tid = fields.IntField()
    total_transaction_count = fields.IntField(query=TransactionCountQuery)
    row_count = transactions.SQLTransactionField(JournalRowCountResultTID)
예제 #10
0
class SumAccountQuery(queries.SQLQuery, query=SUM_ACCOUNT_QUERY):
    account = fields.IntField()
예제 #11
0
 class FailRecord(views.SQLView, view_name='sample_view_fail'):
     ok_name = fields.IntField()
     _create_view_sql = fields.IntField()
예제 #12
0
 class SampleSpecialTable(tables.SQLTable,
                          table_name='sample_special_table'):
     trans_id = fields.IntField(context_used='trans_id')
     value = fields.IntField()
     narrative = fields.TextField(context_used='special_text')
     pk = constraints.PrimaryKeyConstraint(column_names=('trans_id'))
예제 #13
0
 class FailRecord(records.SQLRecord):
     ok_name = fields.IntField()
     _context_values_stored = fields.IntField()
예제 #14
0
 class FailRecord(transactions.SQLTransaction):
     ok_name = fields.IntField()
     _insert_new = fields.IntField()
예제 #15
0
 class CollidingFields2(records.SQLRecord):
     _records = fields.IntField()
예제 #16
0
 class CollidingFields(records.SQLRecord):
     _append = fields.IntField()
예제 #17
0
class SimpleRecord(records.SQLRecord):
    foo = fields.IntField()
    bar = fields.TextField()
    baz = fields.IntField()
예제 #18
0
class JournalRowCountQueryTID(queries.SQLQuery,
                              query=JOURNAL_ROW_COUNT_QUERY_BY_TID,
                              record_type=JournalRowCount):
    tid = fields.IntField()
예제 #19
0
class JournalRowCount(records.SQLRecord):
    creator = fields.CharField(max_length=3)
    tid = fields.IntField()
    row_count = fields.IntField()
예제 #20
0
 class SampleRecord(records.SQLRecord):
     trans_id = fields.IntField(context_used='trans_id')
     flag = fields.BooleanField()
     amount = fields.NumericField(precision=6, scale=2, allow_floats=True)
     narrative = fields.TextField()
예제 #21
0
 class OKRecord(records.SQLRecord):
     ok_name = fields.IntField()
     insert_sql = fields.IntField()
예제 #22
0
 class SampleTransaction(transactions.SQLTransaction):
     trans_id = fields.IntField()
     special_text = SpecialTextField()
     view = transactions.SQLTransactionField(sample_view_class)
     data = transactions.SQLTransactionField(sample_special_table_class)
예제 #23
0
 class FailRecord2(records.SQLRecord):
     ok_name = fields.IntField()
     _fields = fields.IntField()
예제 #24
0
 class FailRecord2(tables.SQLTable, table_name='sample_table_class'):
     ok_name = fields.IntField()
     _schema = fields.IntField()
예제 #25
0
class EnumTestTable(tables.SQLTable, table_name='enum_test'):
    tid = fields.IntField(context_used='tid')
    traffic_light = TrafficLightField()
예제 #26
0
class SingleIntRow(records.SQLRecord):
    answer = fields.IntField()
예제 #27
0
 class FailRecord2(views.SQLView, view_name='sample_view'):
     ok_name = fields.IntField()
     _query = fields.IntField()
예제 #28
0
class ComplexQueryRecord(records.SQLRecord):
    x = fields.IntField()
    x_alpha = fields.IntField()
    y = fields.IntField()
    y_beta = fields.IntField()
예제 #29
0
class Holder:
    query_field = fields.IntField(query=SimpleQuery)
예제 #30
0
 class FailRecord2(sample_transaction_class):
     ok_name = fields.IntField()
     _isolation_level = transactions.SQLTransactionField(
         sample_table_class)