Python API

felis.datamodel Module

Define Pydantic data models for Felis.

Classes

BaseObject

Base model.

CheckConstraint

Table check constraint model.

Column

Column model.

ColumnOverrides

Allowed overrides for a referenced column.

ColumnResourceRef

A column which is dervived from an external resource.

Constraint

Table constraint model.

DataType(value[, names, module, qualname, ...])

Enum representing the data types supported by Felis.

ForeignKeyConstraint

Table foreign key constraint model.

Index

Table index model.

Resource

A resource definition referencing an external schema.

Schema

Database schema model.

SchemaVersion

Schema version model.

Table

Table model.

UniqueConstraint

Table unique constraint model.

Class Inheritance Diagram

Inheritance diagram of felis.datamodel.BaseObject, felis.datamodel.CheckConstraint, felis.datamodel.Column, felis.datamodel.ColumnOverrides, felis.datamodel.ColumnResourceRef, felis.datamodel.Constraint, felis.datamodel.DataType, felis.datamodel.ForeignKeyConstraint, felis.datamodel.Index, felis.datamodel.Resource, felis.datamodel.Schema, felis.datamodel.SchemaVersion, felis.datamodel.Table, felis.datamodel.UniqueConstraint

felis.diff Module

Compare schemas and print the differences.

Classes

DatabaseDiff(schema, engine)

Compare a schema with a database and print the differences.

SchemaDiff(schema1, schema2)

Compare two schemas using DeepDiff and print the differences.

felis.metadata Module

Build SQLAlchemy metadata from a Felis schema.

Functions

get_datatype_with_variants(column_obj)

Use the Felis type system to get a SQLAlchemy datatype with variant overrides from the information in a Felis column object.

Classes

MetaDataBuilder(schema[, ...])

Build a SQLAlchemy metadata object from a Felis schema.

felis.tap_schema Module

Provides utilities for creating and populating the TAP_SCHEMA database.

Classes

DataLoader(schema, mgr, db_context[, ...])

Load data into the TAP_SCHEMA tables.

MetadataInserter(mgr, db_context)

Insert TAP_SCHEMA self-description rows into the database.

TableManager([engine_url, db_context, ...])

Manage TAP_SCHEMA table definitions and access.

felis.types Module

Define the supported Felis datatypes.

Classes

Binary()

Felis definition of binary type.

Boolean()

Felis definition of boolean type.

Byte()

Felis definition of byte type.

Char()

Felis definition of character type.

Double()

Felis definition of double precision floating point type.

FelisType()

Base class for a representation of Felis column types.

Float()

Felis definition of single precision floating point type.

Int()

Felis definition of integer type.

Long()

Felis definition of long integer type.

Short()

Felis definition of short integer type.

String()

Felis definition of string type.

Text()

Felis definition of text type.

Timestamp()

Felis definition of timestamp type.

Unicode()

Felis definition of unicode string type.

Class Inheritance Diagram

Inheritance diagram of felis.types.Binary, felis.types.Boolean, felis.types.Byte, felis.types.Char, felis.types.Double, felis.types.FelisType, felis.types.Float, felis.types.Int, felis.types.Long, felis.types.Short, felis.types.String, felis.types.Text, felis.types.Timestamp, felis.types.Unicode

felis.db.database_context Module

API for managing database operations across different dialects.

Functions

create_database_context(engine_url, metadata)

Create a DatabaseContext object based on the engine URL.

Classes

DatabaseContext()

Interface for managing database operations across different SQL dialects.

DatabaseContextError

Exception raised for errors in the DatabaseContext operations.

MockContext(metadata, connection)

Database context for a mock connection.

MySQLContext(engine_url, metadata)

Database context for MySQL.

PostgreSQLContext(engine_url, metadata)

Database context for Postgres.

SQLiteContext(engine_url, metadata)

Database context for SQLite.

Class Inheritance Diagram

Inheritance diagram of felis.db.database_context.DatabaseContext, felis.db.database_context.DatabaseContextError, felis.db.database_context.MockContext, felis.db.database_context.MySQLContext, felis.db.database_context.PostgreSQLContext, felis.db.database_context.SQLiteContext