Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

antlr-tsql

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

antlr-tsql

A transact sql parser, written in Antlr4

  • 0.12.6
  • PyPI
  • Socket score

Maintainers
2

antlr-tsql

Build Status PyPI version

Development

ANTLR requires Java, so we suggest you use Docker when building grammars. The Makefile contains directives to clean, build, test and deploy the ANTLR grammar. It does not run Docker itself, so run make inside Docker.

Build the grammar

# Build the docker container
docker build -t antlr_tsql .

# Run the container to build the python grammar
# Write parser files to local file system through volume mounting
docker run -it -v ${PWD}:/usr/src/app antlr_tsql make build

Set up the Python module

Now that the Python parsing files are available, you can install them with pip:

pip install -r requirements.txt
pip install -e .

And parse SQL code in Python:

from antlr_tsql import ast
ast.parse("SELECT a from b")

Using the AST viewer

If you're actively developing on the ANLTR grammar or the tree shaping, it's a good idea to set up the AST viewer locally so you can immediately see the impact of your changes in a visual way.

  • Clone the ast-viewer repo and build the Docker image according to the instructions.
  • Spin up a docker container that volume mounts the Python package, symlink-installs the package and runs the server on port 3000:
docker run -it \
  -u root \
  -v ~/workspace/antlr-tsql:/app/app/antlr-tsql \
  -p 3000:3000 \
  ast-viewer \
  /bin/bash -c "echo 'Install development requirements in development:' \
    && pip install --no-deps -e app/antlr-tsql \
    && python3 run.py"

When simultaneously developing other packages, volume mount and install those too:

docker run -it \
  -u root \
  -v ~/workspace/antlr-ast:/app/app/antlr-ast \
  -v ~/workspace/antlr-plsql:/app/app/antlr-plsql \
  -v ~/workspace/antlr-tsql:/app/app/antlr-tsql \
  -p 3000:3000 \
  ast-viewer \
  /bin/bash -c "echo 'Install development requirements in development:' \
    && pip install --no-deps -e app/antlr-ast \
    && pip install --no-deps -e app/antlr-plsql \
    && pip install --no-deps -e app/antlr-tsql \
    && python3 run.py"
  • If you update the tree shaping logic in this repo, the app will auto-update.
  • If you change the grammar, you will have to first rebuild the grammar (with the antlr_tsql docker image) and restart the ast-viewer container.

Run tests

# Similar to building the grammar, but running tests
# and not saving the generated files
docker build -t antlr_tsql .
docker run -t antlr_tsql make build test

Or run the test locally, first build the grammar then run:

pytest

Travis deployment

  • Builds the Docker image.
  • Runs the Docker image to build the grammar and run the unit tests.
  • Deploys the resulting python files to PyPi when a new release is made, so they can be installed easily.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc