Skip to main content

WIP: SQL Column Parser

Codecov GitHub contributors

Library used to parse SQL CREATE TABLE statements into Python code used for code generation.

Intended usecase

Consider the following:

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

CREATE TABLE users (
    identifier UUID DEFAULT uuid_generate_v4(),
    email VARCHAR(256) UNIQUE NOT NULL,
    name VARCHAR(256) NOT NULL,
    is_admin BOOLEAN DEFAULT False,
    password VARCHAR(512) NOT NULL,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (identifier)
);
CREATE INDEX users_email_idx ON users USING btree (email);
CREATE INDEX users_name_idx ON users USING btree (name);

The output would then be a list of columns of type:

@dataclasses.dataclass
class Table:
    """Table.
    """

    columns: List[Column]
    names: Names

class ColumnType(pydantic.BaseModel):
    """ColumnType.
    """

    name: str
    max_bytesize: Optional[pydantic.conint(ge=1)]
    nullable: bool = True
    default: Optional[str] = None


@dataclasses.dataclass
class Column:
    """Column.
    """

    name: str
    col_type: ColumnType
    is_primary_key: bool

@dataclasses.dataclass
class Names():
    """Names.
    """

    singular_name: str
    plural_name: str

Metadata

Release files for sql-column-parser 0.1.0

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

Source distribution (sdist)

Source distribution for sql-column-parser 0.1.0
File Size Uploaded
sql_column_parser-0.1.0.tar.gz 6.7 kB Details

Release files / sql_column_parser-0.1.0.tar.gz

Download URL sql_column_parser-0.1.0.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
66752eca473c6d3cf467368b0f6af49d3f6da387a4530be3fb978ca7a55f2714
BLAKE2b-256 checksum
How to use checksums
13a23bbc5d4fe4f21c2e2236947036054d4c8d2428c68dca4c5f3f27a921e82b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file

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