diff options
author | ilezhankin <ilezhankin@yandex-team.ru> | 2022-02-10 16:45:56 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:56 +0300 |
commit | 62a805381e41500fbc7914c37c71ab040a098f4e (patch) | |
tree | 1a2c5ffcf89eb53ecd79dbc9bc0a195c27404d0c /contrib/python/Pygments/py3/pygments/lexers/_postgres_builtins.py | |
parent | 1d125034f06575234f83f24f08677955133f140e (diff) | |
download | ydb-62a805381e41500fbc7914c37c71ab040a098f4e.tar.gz |
Restoring authorship annotation for <ilezhankin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/python/Pygments/py3/pygments/lexers/_postgres_builtins.py')
-rw-r--r-- | contrib/python/Pygments/py3/pygments/lexers/_postgres_builtins.py | 1208 |
1 files changed, 604 insertions, 604 deletions
diff --git a/contrib/python/Pygments/py3/pygments/lexers/_postgres_builtins.py b/contrib/python/Pygments/py3/pygments/lexers/_postgres_builtins.py index b4b1bd6c85..93bc42059a 100644 --- a/contrib/python/Pygments/py3/pygments/lexers/_postgres_builtins.py +++ b/contrib/python/Pygments/py3/pygments/lexers/_postgres_builtins.py @@ -1,677 +1,677 @@ -""" - pygments.lexers._postgres_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - Self-updating data files for PostgreSQL lexer. - +""" + pygments.lexers._postgres_builtins + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Self-updating data files for PostgreSQL lexer. + :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. -""" - - -# Autogenerated: please edit them if you like wasting your time. - -KEYWORDS = ( - 'ABORT', - 'ABSOLUTE', - 'ACCESS', - 'ACTION', - 'ADD', - 'ADMIN', - 'AFTER', - 'AGGREGATE', - 'ALL', - 'ALSO', - 'ALTER', - 'ALWAYS', - 'ANALYSE', - 'ANALYZE', - 'AND', - 'ANY', - 'ARRAY', - 'AS', - 'ASC', - 'ASSERTION', - 'ASSIGNMENT', - 'ASYMMETRIC', - 'AT', + :license: BSD, see LICENSE for details. +""" + + +# Autogenerated: please edit them if you like wasting your time. + +KEYWORDS = ( + 'ABORT', + 'ABSOLUTE', + 'ACCESS', + 'ACTION', + 'ADD', + 'ADMIN', + 'AFTER', + 'AGGREGATE', + 'ALL', + 'ALSO', + 'ALTER', + 'ALWAYS', + 'ANALYSE', + 'ANALYZE', + 'AND', + 'ANY', + 'ARRAY', + 'AS', + 'ASC', + 'ASSERTION', + 'ASSIGNMENT', + 'ASYMMETRIC', + 'AT', 'ATTACH', - 'ATTRIBUTE', - 'AUTHORIZATION', - 'BACKWARD', - 'BEFORE', - 'BEGIN', - 'BETWEEN', - 'BIGINT', - 'BINARY', - 'BIT', - 'BOOLEAN', - 'BOTH', - 'BY', - 'CACHE', + 'ATTRIBUTE', + 'AUTHORIZATION', + 'BACKWARD', + 'BEFORE', + 'BEGIN', + 'BETWEEN', + 'BIGINT', + 'BINARY', + 'BIT', + 'BOOLEAN', + 'BOTH', + 'BY', + 'CACHE', 'CALL', - 'CALLED', - 'CASCADE', - 'CASCADED', - 'CASE', - 'CAST', - 'CATALOG', - 'CHAIN', - 'CHAR', - 'CHARACTER', - 'CHARACTERISTICS', - 'CHECK', - 'CHECKPOINT', - 'CLASS', - 'CLOSE', - 'CLUSTER', - 'COALESCE', - 'COLLATE', - 'COLLATION', - 'COLUMN', + 'CALLED', + 'CASCADE', + 'CASCADED', + 'CASE', + 'CAST', + 'CATALOG', + 'CHAIN', + 'CHAR', + 'CHARACTER', + 'CHARACTERISTICS', + 'CHECK', + 'CHECKPOINT', + 'CLASS', + 'CLOSE', + 'CLUSTER', + 'COALESCE', + 'COLLATE', + 'COLLATION', + 'COLUMN', 'COLUMNS', - 'COMMENT', - 'COMMENTS', - 'COMMIT', - 'COMMITTED', - 'CONCURRENTLY', - 'CONFIGURATION', + 'COMMENT', + 'COMMENTS', + 'COMMIT', + 'COMMITTED', + 'CONCURRENTLY', + 'CONFIGURATION', 'CONFLICT', - 'CONNECTION', - 'CONSTRAINT', - 'CONSTRAINTS', - 'CONTENT', - 'CONTINUE', - 'CONVERSION', - 'COPY', - 'COST', - 'CREATE', - 'CROSS', - 'CSV', + 'CONNECTION', + 'CONSTRAINT', + 'CONSTRAINTS', + 'CONTENT', + 'CONTINUE', + 'CONVERSION', + 'COPY', + 'COST', + 'CREATE', + 'CROSS', + 'CSV', 'CUBE', - 'CURRENT', - 'CURRENT_CATALOG', - 'CURRENT_DATE', - 'CURRENT_ROLE', - 'CURRENT_SCHEMA', - 'CURRENT_TIME', - 'CURRENT_TIMESTAMP', - 'CURRENT_USER', - 'CURSOR', - 'CYCLE', - 'DATA', - 'DATABASE', - 'DAY', - 'DEALLOCATE', - 'DEC', - 'DECIMAL', - 'DECLARE', - 'DEFAULT', - 'DEFAULTS', - 'DEFERRABLE', - 'DEFERRED', - 'DEFINER', - 'DELETE', - 'DELIMITER', - 'DELIMITERS', + 'CURRENT', + 'CURRENT_CATALOG', + 'CURRENT_DATE', + 'CURRENT_ROLE', + 'CURRENT_SCHEMA', + 'CURRENT_TIME', + 'CURRENT_TIMESTAMP', + 'CURRENT_USER', + 'CURSOR', + 'CYCLE', + 'DATA', + 'DATABASE', + 'DAY', + 'DEALLOCATE', + 'DEC', + 'DECIMAL', + 'DECLARE', + 'DEFAULT', + 'DEFAULTS', + 'DEFERRABLE', + 'DEFERRED', + 'DEFINER', + 'DELETE', + 'DELIMITER', + 'DELIMITERS', 'DEPENDS', - 'DESC', + 'DESC', 'DETACH', - 'DICTIONARY', - 'DISABLE', - 'DISCARD', - 'DISTINCT', - 'DO', - 'DOCUMENT', - 'DOMAIN', - 'DOUBLE', - 'DROP', - 'EACH', - 'ELSE', - 'ENABLE', - 'ENCODING', - 'ENCRYPTED', - 'END', - 'ENUM', - 'ESCAPE', - 'EVENT', - 'EXCEPT', - 'EXCLUDE', - 'EXCLUDING', - 'EXCLUSIVE', - 'EXECUTE', - 'EXISTS', - 'EXPLAIN', + 'DICTIONARY', + 'DISABLE', + 'DISCARD', + 'DISTINCT', + 'DO', + 'DOCUMENT', + 'DOMAIN', + 'DOUBLE', + 'DROP', + 'EACH', + 'ELSE', + 'ENABLE', + 'ENCODING', + 'ENCRYPTED', + 'END', + 'ENUM', + 'ESCAPE', + 'EVENT', + 'EXCEPT', + 'EXCLUDE', + 'EXCLUDING', + 'EXCLUSIVE', + 'EXECUTE', + 'EXISTS', + 'EXPLAIN', 'EXPRESSION', - 'EXTENSION', - 'EXTERNAL', - 'EXTRACT', - 'FALSE', - 'FAMILY', - 'FETCH', - 'FILTER', - 'FIRST', - 'FLOAT', - 'FOLLOWING', - 'FOR', - 'FORCE', - 'FOREIGN', - 'FORWARD', - 'FREEZE', - 'FROM', - 'FULL', - 'FUNCTION', - 'FUNCTIONS', + 'EXTENSION', + 'EXTERNAL', + 'EXTRACT', + 'FALSE', + 'FAMILY', + 'FETCH', + 'FILTER', + 'FIRST', + 'FLOAT', + 'FOLLOWING', + 'FOR', + 'FORCE', + 'FOREIGN', + 'FORWARD', + 'FREEZE', + 'FROM', + 'FULL', + 'FUNCTION', + 'FUNCTIONS', 'GENERATED', - 'GLOBAL', - 'GRANT', - 'GRANTED', - 'GREATEST', - 'GROUP', + 'GLOBAL', + 'GRANT', + 'GRANTED', + 'GREATEST', + 'GROUP', 'GROUPING', 'GROUPS', - 'HANDLER', - 'HAVING', - 'HEADER', - 'HOLD', - 'HOUR', - 'IDENTITY', - 'IF', - 'ILIKE', - 'IMMEDIATE', - 'IMMUTABLE', - 'IMPLICIT', + 'HANDLER', + 'HAVING', + 'HEADER', + 'HOLD', + 'HOUR', + 'IDENTITY', + 'IF', + 'ILIKE', + 'IMMEDIATE', + 'IMMUTABLE', + 'IMPLICIT', 'IMPORT', - 'IN', + 'IN', 'INCLUDE', - 'INCLUDING', - 'INCREMENT', - 'INDEX', - 'INDEXES', - 'INHERIT', - 'INHERITS', - 'INITIALLY', - 'INLINE', - 'INNER', - 'INOUT', - 'INPUT', - 'INSENSITIVE', - 'INSERT', - 'INSTEAD', - 'INT', - 'INTEGER', - 'INTERSECT', - 'INTERVAL', - 'INTO', - 'INVOKER', - 'IS', - 'ISNULL', - 'ISOLATION', - 'JOIN', - 'KEY', - 'LABEL', - 'LANGUAGE', - 'LARGE', - 'LAST', - 'LATERAL', - 'LEADING', - 'LEAKPROOF', - 'LEAST', - 'LEFT', - 'LEVEL', - 'LIKE', - 'LIMIT', - 'LISTEN', - 'LOAD', - 'LOCAL', - 'LOCALTIME', - 'LOCALTIMESTAMP', - 'LOCATION', - 'LOCK', + 'INCLUDING', + 'INCREMENT', + 'INDEX', + 'INDEXES', + 'INHERIT', + 'INHERITS', + 'INITIALLY', + 'INLINE', + 'INNER', + 'INOUT', + 'INPUT', + 'INSENSITIVE', + 'INSERT', + 'INSTEAD', + 'INT', + 'INTEGER', + 'INTERSECT', + 'INTERVAL', + 'INTO', + 'INVOKER', + 'IS', + 'ISNULL', + 'ISOLATION', + 'JOIN', + 'KEY', + 'LABEL', + 'LANGUAGE', + 'LARGE', + 'LAST', + 'LATERAL', + 'LEADING', + 'LEAKPROOF', + 'LEAST', + 'LEFT', + 'LEVEL', + 'LIKE', + 'LIMIT', + 'LISTEN', + 'LOAD', + 'LOCAL', + 'LOCALTIME', + 'LOCALTIMESTAMP', + 'LOCATION', + 'LOCK', 'LOCKED', 'LOGGED', - 'MAPPING', - 'MATCH', - 'MATERIALIZED', - 'MAXVALUE', + 'MAPPING', + 'MATCH', + 'MATERIALIZED', + 'MAXVALUE', 'METHOD', - 'MINUTE', - 'MINVALUE', - 'MODE', - 'MONTH', - 'MOVE', - 'NAME', - 'NAMES', - 'NATIONAL', - 'NATURAL', - 'NCHAR', + 'MINUTE', + 'MINVALUE', + 'MODE', + 'MONTH', + 'MOVE', + 'NAME', + 'NAMES', + 'NATIONAL', + 'NATURAL', + 'NCHAR', 'NEW', - 'NEXT', + 'NEXT', 'NFC', 'NFD', 'NFKC', 'NFKD', - 'NO', - 'NONE', + 'NO', + 'NONE', 'NORMALIZE', 'NORMALIZED', - 'NOT', - 'NOTHING', - 'NOTIFY', - 'NOTNULL', - 'NOWAIT', - 'NULL', - 'NULLIF', - 'NULLS', - 'NUMERIC', - 'OBJECT', - 'OF', - 'OFF', - 'OFFSET', - 'OIDS', + 'NOT', + 'NOTHING', + 'NOTIFY', + 'NOTNULL', + 'NOWAIT', + 'NULL', + 'NULLIF', + 'NULLS', + 'NUMERIC', + 'OBJECT', + 'OF', + 'OFF', + 'OFFSET', + 'OIDS', 'OLD', - 'ON', - 'ONLY', - 'OPERATOR', - 'OPTION', - 'OPTIONS', - 'OR', - 'ORDER', - 'ORDINALITY', + 'ON', + 'ONLY', + 'OPERATOR', + 'OPTION', + 'OPTIONS', + 'OR', + 'ORDER', + 'ORDINALITY', 'OTHERS', - 'OUT', - 'OUTER', - 'OVER', - 'OVERLAPS', - 'OVERLAY', + 'OUT', + 'OUTER', + 'OVER', + 'OVERLAPS', + 'OVERLAY', 'OVERRIDING', - 'OWNED', - 'OWNER', + 'OWNED', + 'OWNER', 'PARALLEL', - 'PARSER', - 'PARTIAL', - 'PARTITION', - 'PASSING', - 'PASSWORD', - 'PLACING', - 'PLANS', - 'POLICY', - 'POSITION', - 'PRECEDING', - 'PRECISION', - 'PREPARE', - 'PREPARED', - 'PRESERVE', - 'PRIMARY', - 'PRIOR', - 'PRIVILEGES', - 'PROCEDURAL', - 'PROCEDURE', + 'PARSER', + 'PARTIAL', + 'PARTITION', + 'PASSING', + 'PASSWORD', + 'PLACING', + 'PLANS', + 'POLICY', + 'POSITION', + 'PRECEDING', + 'PRECISION', + 'PREPARE', + 'PREPARED', + 'PRESERVE', + 'PRIMARY', + 'PRIOR', + 'PRIVILEGES', + 'PROCEDURAL', + 'PROCEDURE', 'PROCEDURES', - 'PROGRAM', + 'PROGRAM', 'PUBLICATION', - 'QUOTE', - 'RANGE', - 'READ', - 'REAL', - 'REASSIGN', - 'RECHECK', - 'RECURSIVE', - 'REF', - 'REFERENCES', + 'QUOTE', + 'RANGE', + 'READ', + 'REAL', + 'REASSIGN', + 'RECHECK', + 'RECURSIVE', + 'REF', + 'REFERENCES', 'REFERENCING', - 'REFRESH', - 'REINDEX', - 'RELATIVE', - 'RELEASE', - 'RENAME', - 'REPEATABLE', - 'REPLACE', - 'REPLICA', - 'RESET', - 'RESTART', - 'RESTRICT', - 'RETURNING', - 'RETURNS', - 'REVOKE', - 'RIGHT', - 'ROLE', - 'ROLLBACK', + 'REFRESH', + 'REINDEX', + 'RELATIVE', + 'RELEASE', + 'RENAME', + 'REPEATABLE', + 'REPLACE', + 'REPLICA', + 'RESET', + 'RESTART', + 'RESTRICT', + 'RETURNING', + 'RETURNS', + 'REVOKE', + 'RIGHT', + 'ROLE', + 'ROLLBACK', 'ROLLUP', 'ROUTINE', 'ROUTINES', - 'ROW', - 'ROWS', - 'RULE', - 'SAVEPOINT', - 'SCHEMA', + 'ROW', + 'ROWS', + 'RULE', + 'SAVEPOINT', + 'SCHEMA', 'SCHEMAS', - 'SCROLL', - 'SEARCH', - 'SECOND', - 'SECURITY', - 'SELECT', - 'SEQUENCE', - 'SEQUENCES', - 'SERIALIZABLE', - 'SERVER', - 'SESSION', - 'SESSION_USER', - 'SET', - 'SETOF', + 'SCROLL', + 'SEARCH', + 'SECOND', + 'SECURITY', + 'SELECT', + 'SEQUENCE', + 'SEQUENCES', + 'SERIALIZABLE', + 'SERVER', + 'SESSION', + 'SESSION_USER', + 'SET', + 'SETOF', 'SETS', - 'SHARE', - 'SHOW', - 'SIMILAR', - 'SIMPLE', + 'SHARE', + 'SHOW', + 'SIMILAR', + 'SIMPLE', 'SKIP', - 'SMALLINT', - 'SNAPSHOT', - 'SOME', + 'SMALLINT', + 'SNAPSHOT', + 'SOME', 'SQL', - 'STABLE', - 'STANDALONE', - 'START', - 'STATEMENT', - 'STATISTICS', - 'STDIN', - 'STDOUT', - 'STORAGE', + 'STABLE', + 'STANDALONE', + 'START', + 'STATEMENT', + 'STATISTICS', + 'STDIN', + 'STDOUT', + 'STORAGE', 'STORED', - 'STRICT', - 'STRIP', + 'STRICT', + 'STRIP', 'SUBSCRIPTION', - 'SUBSTRING', + 'SUBSTRING', 'SUPPORT', - 'SYMMETRIC', - 'SYSID', - 'SYSTEM', - 'TABLE', - 'TABLES', + 'SYMMETRIC', + 'SYSID', + 'SYSTEM', + 'TABLE', + 'TABLES', 'TABLESAMPLE', - 'TABLESPACE', - 'TEMP', - 'TEMPLATE', - 'TEMPORARY', - 'TEXT', - 'THEN', + 'TABLESPACE', + 'TEMP', + 'TEMPLATE', + 'TEMPORARY', + 'TEXT', + 'THEN', 'TIES', - 'TIME', - 'TIMESTAMP', - 'TO', - 'TRAILING', - 'TRANSACTION', + 'TIME', + 'TIMESTAMP', + 'TO', + 'TRAILING', + 'TRANSACTION', 'TRANSFORM', - 'TREAT', - 'TRIGGER', - 'TRIM', - 'TRUE', - 'TRUNCATE', - 'TRUSTED', - 'TYPE', - 'TYPES', + 'TREAT', + 'TRIGGER', + 'TRIM', + 'TRUE', + 'TRUNCATE', + 'TRUSTED', + 'TYPE', + 'TYPES', 'UESCAPE', - 'UNBOUNDED', - 'UNCOMMITTED', - 'UNENCRYPTED', - 'UNION', - 'UNIQUE', - 'UNKNOWN', - 'UNLISTEN', - 'UNLOGGED', - 'UNTIL', - 'UPDATE', - 'USER', - 'USING', - 'VACUUM', - 'VALID', - 'VALIDATE', - 'VALIDATOR', - 'VALUE', - 'VALUES', - 'VARCHAR', - 'VARIADIC', - 'VARYING', - 'VERBOSE', - 'VERSION', - 'VIEW', - 'VIEWS', - 'VOLATILE', - 'WHEN', - 'WHERE', - 'WHITESPACE', - 'WINDOW', - 'WITH', - 'WITHIN', - 'WITHOUT', - 'WORK', - 'WRAPPER', - 'WRITE', - 'XML', - 'XMLATTRIBUTES', - 'XMLCONCAT', - 'XMLELEMENT', - 'XMLEXISTS', - 'XMLFOREST', + 'UNBOUNDED', + 'UNCOMMITTED', + 'UNENCRYPTED', + 'UNION', + 'UNIQUE', + 'UNKNOWN', + 'UNLISTEN', + 'UNLOGGED', + 'UNTIL', + 'UPDATE', + 'USER', + 'USING', + 'VACUUM', + 'VALID', + 'VALIDATE', + 'VALIDATOR', + 'VALUE', + 'VALUES', + 'VARCHAR', + 'VARIADIC', + 'VARYING', + 'VERBOSE', + 'VERSION', + 'VIEW', + 'VIEWS', + 'VOLATILE', + 'WHEN', + 'WHERE', + 'WHITESPACE', + 'WINDOW', + 'WITH', + 'WITHIN', + 'WITHOUT', + 'WORK', + 'WRAPPER', + 'WRITE', + 'XML', + 'XMLATTRIBUTES', + 'XMLCONCAT', + 'XMLELEMENT', + 'XMLEXISTS', + 'XMLFOREST', 'XMLNAMESPACES', - 'XMLPARSE', - 'XMLPI', - 'XMLROOT', - 'XMLSERIALIZE', + 'XMLPARSE', + 'XMLPI', + 'XMLROOT', + 'XMLSERIALIZE', 'XMLTABLE', - 'YEAR', - 'YES', - 'ZONE', -) - -DATATYPES = ( - 'bigint', - 'bigserial', - 'bit', - 'bit varying', - 'bool', - 'boolean', - 'box', - 'bytea', - 'char', - 'character', - 'character varying', - 'cidr', - 'circle', - 'date', - 'decimal', - 'double precision', - 'float4', - 'float8', - 'inet', - 'int', - 'int2', - 'int4', - 'int8', - 'integer', - 'interval', - 'json', - 'jsonb', - 'line', - 'lseg', - 'macaddr', + 'YEAR', + 'YES', + 'ZONE', +) + +DATATYPES = ( + 'bigint', + 'bigserial', + 'bit', + 'bit varying', + 'bool', + 'boolean', + 'box', + 'bytea', + 'char', + 'character', + 'character varying', + 'cidr', + 'circle', + 'date', + 'decimal', + 'double precision', + 'float4', + 'float8', + 'inet', + 'int', + 'int2', + 'int4', + 'int8', + 'integer', + 'interval', + 'json', + 'jsonb', + 'line', + 'lseg', + 'macaddr', 'macaddr8', - 'money', - 'numeric', - 'path', - 'pg_lsn', + 'money', + 'numeric', + 'path', + 'pg_lsn', 'pg_snapshot', - 'point', - 'polygon', - 'real', - 'serial', - 'serial2', - 'serial4', - 'serial8', - 'smallint', - 'smallserial', - 'text', - 'time', - 'timestamp', - 'timestamptz', - 'timetz', - 'tsquery', - 'tsvector', - 'txid_snapshot', - 'uuid', - 'varbit', - 'varchar', - 'with time zone', - 'without time zone', - 'xml', -) - -PSEUDO_TYPES = ( - 'any', + 'point', + 'polygon', + 'real', + 'serial', + 'serial2', + 'serial4', + 'serial8', + 'smallint', + 'smallserial', + 'text', + 'time', + 'timestamp', + 'timestamptz', + 'timetz', + 'tsquery', + 'tsvector', + 'txid_snapshot', + 'uuid', + 'varbit', + 'varchar', + 'with time zone', + 'without time zone', + 'xml', +) + +PSEUDO_TYPES = ( + 'any', 'anyarray', 'anycompatible', 'anycompatiblearray', 'anycompatiblenonarray', 'anycompatiblerange', - 'anyelement', + 'anyelement', 'anyenum', - 'anynonarray', - 'anyrange', - 'cstring', + 'anynonarray', + 'anyrange', + 'cstring', 'event_trigger', 'fdw_handler', 'index_am_handler', - 'internal', - 'language_handler', + 'internal', + 'language_handler', 'pg_ddl_command', - 'record', + 'record', 'table_am_handler', - 'trigger', + 'trigger', 'tsm_handler', 'unknown', - 'void', -) - -# Remove 'trigger' from types -PSEUDO_TYPES = tuple(sorted(set(PSEUDO_TYPES) - set(map(str.lower, KEYWORDS)))) - -PLPGSQL_KEYWORDS = ( - 'ALIAS', 'CONSTANT', 'DIAGNOSTICS', 'ELSIF', 'EXCEPTION', 'EXIT', - 'FOREACH', 'GET', 'LOOP', 'NOTICE', 'OPEN', 'PERFORM', 'QUERY', 'RAISE', - 'RETURN', 'REVERSE', 'SQLSTATE', 'WHILE', -) - - -if __name__ == '__main__': # pragma: no cover - import re - try: - from urllib import urlopen - except ImportError: - from urllib.request import urlopen - - from pygments.util import format_lines - - # One man's constant is another man's variable. - SOURCE_URL = 'https://github.com/postgres/postgres/raw/master' + 'void', +) + +# Remove 'trigger' from types +PSEUDO_TYPES = tuple(sorted(set(PSEUDO_TYPES) - set(map(str.lower, KEYWORDS)))) + +PLPGSQL_KEYWORDS = ( + 'ALIAS', 'CONSTANT', 'DIAGNOSTICS', 'ELSIF', 'EXCEPTION', 'EXIT', + 'FOREACH', 'GET', 'LOOP', 'NOTICE', 'OPEN', 'PERFORM', 'QUERY', 'RAISE', + 'RETURN', 'REVERSE', 'SQLSTATE', 'WHILE', +) + + +if __name__ == '__main__': # pragma: no cover + import re + try: + from urllib import urlopen + except ImportError: + from urllib.request import urlopen + + from pygments.util import format_lines + + # One man's constant is another man's variable. + SOURCE_URL = 'https://github.com/postgres/postgres/raw/master' KEYWORDS_URL = SOURCE_URL + '/src/include/parser/kwlist.h' - DATATYPES_URL = SOURCE_URL + '/doc/src/sgml/datatype.sgml' - - def update_myself(): + DATATYPES_URL = SOURCE_URL + '/doc/src/sgml/datatype.sgml' + + def update_myself(): content = urlopen(DATATYPES_URL).read().decode('utf-8', errors='ignore') data_file = list(content.splitlines()) - datatypes = parse_datatypes(data_file) - pseudos = parse_pseudos(data_file) - + datatypes = parse_datatypes(data_file) + pseudos = parse_pseudos(data_file) + content = urlopen(KEYWORDS_URL).read().decode('utf-8', errors='ignore') keywords = parse_keywords(content) - update_consts(__file__, 'DATATYPES', datatypes) - update_consts(__file__, 'PSEUDO_TYPES', pseudos) - update_consts(__file__, 'KEYWORDS', keywords) - - def parse_keywords(f): - kw = [] + update_consts(__file__, 'DATATYPES', datatypes) + update_consts(__file__, 'PSEUDO_TYPES', pseudos) + update_consts(__file__, 'KEYWORDS', keywords) + + def parse_keywords(f): + kw = [] for m in re.finditer(r'PG_KEYWORD\("(.+?)"', f): kw.append(m.group(1).upper()) - - if not kw: - raise ValueError('no keyword found') - - kw.sort() - return kw - - def parse_datatypes(f): - dt = set() - for line in f: - if '<sect1' in line: - break - if '<entry><type>' not in line: - continue - - # Parse a string such as - # time [ (<replaceable>p</replaceable>) ] [ without time zone ] - # into types "time" and "without time zone" - - # remove all the tags - line = re.sub("<replaceable>[^<]+</replaceable>", "", line) - line = re.sub("<[^>]+>", "", line) - - # Drop the parts containing braces - for tmp in [t for tmp in line.split('[') - for t in tmp.split(']') if "(" not in t]: - for t in tmp.split(','): - t = t.strip() - if not t: continue - dt.add(" ".join(t.split())) - - dt = list(dt) - dt.sort() - return dt - - def parse_pseudos(f): - dt = [] - re_start = re.compile(r'\s*<table id="datatype-pseudotypes-table">') + + if not kw: + raise ValueError('no keyword found') + + kw.sort() + return kw + + def parse_datatypes(f): + dt = set() + for line in f: + if '<sect1' in line: + break + if '<entry><type>' not in line: + continue + + # Parse a string such as + # time [ (<replaceable>p</replaceable>) ] [ without time zone ] + # into types "time" and "without time zone" + + # remove all the tags + line = re.sub("<replaceable>[^<]+</replaceable>", "", line) + line = re.sub("<[^>]+>", "", line) + + # Drop the parts containing braces + for tmp in [t for tmp in line.split('[') + for t in tmp.split(']') if "(" not in t]: + for t in tmp.split(','): + t = t.strip() + if not t: continue + dt.add(" ".join(t.split())) + + dt = list(dt) + dt.sort() + return dt + + def parse_pseudos(f): + dt = [] + re_start = re.compile(r'\s*<table id="datatype-pseudotypes-table">') re_entry = re.compile(r'\s*<entry><type>(.+?)</type></entry>') - re_end = re.compile(r'\s*</table>') - - f = iter(f) - for line in f: - if re_start.match(line) is not None: - break - else: - raise ValueError('pseudo datatypes table not found') - - for line in f: - m = re_entry.match(line) - if m is not None: - dt.append(m.group(1)) - - if re_end.match(line) is not None: - break - else: - raise ValueError('end of pseudo datatypes table not found') - - if not dt: - raise ValueError('pseudo datatypes not found') - + re_end = re.compile(r'\s*</table>') + + f = iter(f) + for line in f: + if re_start.match(line) is not None: + break + else: + raise ValueError('pseudo datatypes table not found') + + for line in f: + m = re_entry.match(line) + if m is not None: + dt.append(m.group(1)) + + if re_end.match(line) is not None: + break + else: + raise ValueError('end of pseudo datatypes table not found') + + if not dt: + raise ValueError('pseudo datatypes not found') + dt.sort() - return dt - - def update_consts(filename, constname, content): - with open(filename) as f: - data = f.read() - - # Line to start/end inserting - re_match = re.compile(r'^%s\s*=\s*\($.*?^\s*\)$' % constname, re.M | re.S) - m = re_match.search(data) - if not m: - raise ValueError('Could not find existing definition for %s' % - (constname,)) - - new_block = format_lines(constname, content) - data = data[:m.start()] + new_block + data[m.end():] - + return dt + + def update_consts(filename, constname, content): + with open(filename) as f: + data = f.read() + + # Line to start/end inserting + re_match = re.compile(r'^%s\s*=\s*\($.*?^\s*\)$' % constname, re.M | re.S) + m = re_match.search(data) + if not m: + raise ValueError('Could not find existing definition for %s' % + (constname,)) + + new_block = format_lines(constname, content) + data = data[:m.start()] + new_block + data[m.end():] + with open(filename, 'w', newline='\n') as f: - f.write(data) - - update_myself() + f.write(data) + + update_myself() |