Add bindings and reformat
This commit is contained in:
parent
dd4919dd30
commit
6473216fcb
|
@ -0,0 +1,248 @@
|
|||
"""SQLAlchemy generated Calibre database bindings."""
|
||||
|
||||
from sqlalchemy import (
|
||||
TIMESTAMP,
|
||||
Boolean,
|
||||
CheckConstraint,
|
||||
Column,
|
||||
Float,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
LargeBinary,
|
||||
Table,
|
||||
Text,
|
||||
UniqueConstraint,
|
||||
text,
|
||||
)
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
Base = declarative_base()
|
||||
metadata = Base.metadata
|
||||
|
||||
books_authors_link = Table(
|
||||
"books_authors_link",
|
||||
Base.metadata,
|
||||
Column("book", Integer, ForeignKey("books.id"), primary_key=True),
|
||||
Column("author", Integer, ForeignKey("authors.id"), primary_key=True),
|
||||
)
|
||||
|
||||
books_tags_link = Table(
|
||||
"books_tags_link",
|
||||
Base.metadata,
|
||||
Column("book", Integer, ForeignKey("books.id"), primary_key=True),
|
||||
Column("tag", Integer, ForeignKey("tags.id"), primary_key=True),
|
||||
)
|
||||
|
||||
books_series_link = Table(
|
||||
"books_series_link",
|
||||
Base.metadata,
|
||||
Column("book", Integer, ForeignKey("books.id"), primary_key=True),
|
||||
Column("series", Integer, ForeignKey("series.id"), primary_key=True),
|
||||
)
|
||||
|
||||
books_ratings_link = Table(
|
||||
"books_ratings_link",
|
||||
Base.metadata,
|
||||
Column("book", Integer, ForeignKey("books.id"), primary_key=True),
|
||||
Column("rating", Integer, ForeignKey("ratings.id"), primary_key=True),
|
||||
)
|
||||
|
||||
books_languages_link = Table(
|
||||
"books_languages_link",
|
||||
Base.metadata,
|
||||
Column("book", Integer, ForeignKey("books.id"), primary_key=True),
|
||||
Column("lang_code", Integer, ForeignKey("languages.id"), primary_key=True),
|
||||
)
|
||||
|
||||
|
||||
books_publishers_link = Table(
|
||||
"books_publishers_link",
|
||||
Base.metadata,
|
||||
Column("book", Integer, ForeignKey("books.id"), primary_key=True),
|
||||
Column("publisher", Integer, ForeignKey("publishers.id"), primary_key=True),
|
||||
)
|
||||
|
||||
|
||||
class Author(Base):
|
||||
__tablename__ = "authors"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
name = Column(Text, nullable=False, unique=True)
|
||||
sort = Column(Text)
|
||||
link = Column(Text, nullable=False, server_default=text('""'))
|
||||
|
||||
|
||||
class Book(Base):
|
||||
__tablename__ = "books"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
title = Column(Text, nullable=False, server_default=text("'Unknown'"))
|
||||
sort = Column(Text, index=True)
|
||||
timestamp = Column(TIMESTAMP, server_default=text("CURRENT_TIMESTAMP"))
|
||||
pubdate = Column(TIMESTAMP, server_default=text("CURRENT_TIMESTAMP"))
|
||||
series_index = Column(Float, nullable=False, server_default=text("1.0"))
|
||||
author_sort = Column(Text, index=True)
|
||||
isbn = Column(Text, server_default=text('""'))
|
||||
lccn = Column(Text, server_default=text('""'))
|
||||
path = Column(Text, nullable=False, server_default=text('""'))
|
||||
flags = Column(Integer, nullable=False, server_default=text("1"))
|
||||
uuid = Column(Text)
|
||||
has_cover = Column(Boolean, server_default=text("0"))
|
||||
last_modified = Column(
|
||||
TIMESTAMP,
|
||||
nullable=False,
|
||||
server_default=text('"2000-01-01 00:00:00+00:00"'),
|
||||
)
|
||||
authors = relationship(
|
||||
"Author", secondary=books_authors_link, backref="books"
|
||||
)
|
||||
tags = relationship(
|
||||
"Tag", secondary=books_tags_link, backref="books", order_by="Tag.name"
|
||||
)
|
||||
comments = relationship("Comment", backref="books")
|
||||
data = relationship("Datum", backref="books")
|
||||
series = relationship(
|
||||
"Series", secondary=books_series_link, backref="books"
|
||||
)
|
||||
ratings = relationship(
|
||||
"Rating", secondary=books_ratings_link, backref="books"
|
||||
)
|
||||
languages = relationship(
|
||||
"Language", secondary=books_languages_link, backref="books"
|
||||
)
|
||||
publishers = relationship(
|
||||
"Publisher", secondary=books_publishers_link, backref="books"
|
||||
)
|
||||
identifiers = relationship("Identifier", backref="books")
|
||||
|
||||
|
||||
class BooksPluginDatum(Base):
|
||||
__tablename__ = "books_plugin_data"
|
||||
__table_args__ = (UniqueConstraint("book", "name"),)
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
book = Column(Integer, ForeignKey("books.id"), nullable=False)
|
||||
name = Column(Text, nullable=False)
|
||||
val = Column(Text, nullable=False)
|
||||
|
||||
|
||||
class Comment(Base):
|
||||
__tablename__ = "comments"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
book = Column(Integer, ForeignKey("books.id"))
|
||||
text = Column(Text, nullable=False)
|
||||
|
||||
|
||||
class ConversionOption(Base):
|
||||
__tablename__ = "conversion_options"
|
||||
__table_args__ = (UniqueConstraint("format", "book"),)
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
format = Column(Text, nullable=False, index=True)
|
||||
book = Column(Integer, ForeignKey("books.id"), index=True)
|
||||
data = Column(LargeBinary, ForeignKey("data.id"), nullable=False)
|
||||
|
||||
|
||||
class CustomColumn(Base):
|
||||
__tablename__ = "custom_columns"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
label = Column(Text, nullable=False, unique=True)
|
||||
name = Column(Text, nullable=False)
|
||||
datatype = Column(Text, nullable=False)
|
||||
mark_for_delete = Column(Boolean, nullable=False, server_default=text("0"))
|
||||
editable = Column(Boolean, nullable=False, server_default=text("1"))
|
||||
display = Column(Text, nullable=False, server_default=text('"{}"'))
|
||||
is_multiple = Column(Boolean, nullable=False, server_default=text("0"))
|
||||
normalized = Column(Boolean, nullable=False)
|
||||
|
||||
|
||||
class Datum(Base):
|
||||
__tablename__ = "data"
|
||||
__table_args__ = (UniqueConstraint("book", "format"),)
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
book = Column(Integer, ForeignKey("books.id"), nullable=False, index=True)
|
||||
format = Column(Text, nullable=False, index=True)
|
||||
uncompressed_size = Column(Integer, nullable=False)
|
||||
name = Column(Text, nullable=False)
|
||||
|
||||
|
||||
class Feed(Base):
|
||||
__tablename__ = "feeds"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
title = Column(Text, nullable=False, unique=True)
|
||||
script = Column(Text, nullable=False)
|
||||
|
||||
|
||||
class Identifier(Base):
|
||||
__tablename__ = "identifiers"
|
||||
__table_args__ = (UniqueConstraint("book", "type"),)
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
book = Column(Integer, ForeignKey("books.id"))
|
||||
type = Column(Text, nullable=False, server_default=text('"isbn"'))
|
||||
val = Column(Text, nullable=False)
|
||||
|
||||
|
||||
class Language(Base):
|
||||
__tablename__ = "languages"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
lang_code = Column(Text, nullable=False, unique=True)
|
||||
|
||||
|
||||
class LibraryId(Base):
|
||||
__tablename__ = "library_id"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
uuid = Column(Text, nullable=False, unique=True)
|
||||
|
||||
|
||||
class MetadataDirtied(Base):
|
||||
__tablename__ = "metadata_dirtied"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
book = Column(Integer, ForeignKey("books.id"), nullable=False, unique=True)
|
||||
|
||||
|
||||
class Preference(Base):
|
||||
__tablename__ = "preferences"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
key = Column(Text, nullable=False, unique=True)
|
||||
val = Column(Text, nullable=False)
|
||||
|
||||
|
||||
class Publisher(Base):
|
||||
__tablename__ = "publishers"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
name = Column(Text, nullable=False, unique=True)
|
||||
sort = Column(Text)
|
||||
|
||||
|
||||
class Rating(Base):
|
||||
__tablename__ = "ratings"
|
||||
__table_args__ = (CheckConstraint("rating > -1 AND rating < 11"),)
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
rating = Column(Integer, unique=True)
|
||||
|
||||
|
||||
class Series(Base):
|
||||
__tablename__ = "series"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
name = Column(Text, nullable=False, unique=True)
|
||||
sort = Column(Text)
|
||||
|
||||
|
||||
class Tag(Base):
|
||||
__tablename__ = "tags"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
name = Column(Text, nullable=False, unique=True)
|
|
@ -1 +0,0 @@
|
|||
"""Calibre database bindings for library prototyping."""
|
Loading…
Reference in New Issue