astropy / astropy/pyvo

provTAP and PEP 249

Open
#117 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
88
Forks
64
Avg merge
38m
Merged PRs (30d)
1

Description

When converting the local access of a database (directly to postgres, mysql or similar) to TAP (ADQL or native language), one runs into the problem that the TAP service does not support [PEP 249](https://www.python.org/dev/peps/pep-0249/), the Python Database API Specification, but maintains the queries in its very own way.

Apart from not using the `connection`/`cursor` classes, there is also no way to safely use variables (as in `cursor.execute()` in PEP 249); instead one has to locally create the full query and also do the required escape sequences manually. This has the danger of SQL injection, especially when the query is built using external input.

IMO pyvo should follow the Python standard for a database API here.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing pyvo's current TAP query interface and the PEP 249 connection, cursor, and parameterization requirements described in the issue. Define the scope and compatibility expectations for a PEP 249-style API; done should include safe variable handling and documented behavior for TAP queries.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, sql
Domain
api, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.