-
-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for TAP table create/delete/upload CADC prototype #274
Conversation
I have a commit that fixes some unit tests on windows, but this PR needs to be rebased since it doesn't work with recent versions of |
The reason this is stalled was the missing support for experimental code. Once that is available, I can proceed with this. Maybe I should try to rebase it and then pull from your fork for the Windows fixes? Sounds good? |
@olaurino - rebased |
https://github.com/olaurino/pyvo/tree/cadc_tbupload I added two commits, one for the windows error, one for the trailing whitespace I hadn't noticed. |
Codecov Report
@@ Coverage Diff @@
## main #274 +/- ##
==========================================
+ Coverage 78.37% 78.51% +0.14%
==========================================
Files 46 47 +1
Lines 5498 5548 +50
==========================================
+ Hits 4309 4356 +47
- Misses 1189 1192 +3
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
@olaurino - your changes have been added and the win tests are passing. Thanks! |
@tomdonaldson @olaurino @bsipocz - this is ready for final review. The only think that I'm not sure about is documentation. The proposed update to the spec is already documented in IVOA Twiki page (link provided with the feature) but should the existence of the |
I strongly believe there should be documentation in PyVO, independently of twiki as the library is a standalone one and not an ivoa thing.
I think it should be at both places, cross-linking. I'm thinking the main one should be at TAP, as ideally moving from prototype to standard would only involve of removing an e.g. "Prototypes" heading in the docs. And then have a separate prototypes listing what would collect all the prototypes (basically just a bulleted list with the references to the relevant docs sections?) from all over the package, as an overview. |
Documentation added. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This generally looks good to me, with a couple comments.
The documentation location seems fine to me. The documentation content seems good also but maybe another note or two would help answer my workflow question.
Please rebase this before merging to make sure the remote and doctests are run and passed for the changes |
35d64f8
to
5c2c6f8
Compare
25e8b09
to
14c55aa
Compare
I believe this is now ready as well. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One minor doc formatting issue, and a more generic suggestion for the new API.
This represents an implementation of a soon-to-be-proposed prototype for TAP1.2 to allow for the create/deletion of tables as well as bulk uploads of table content. The prototype service runs at the CADC and has the following characteristics:
Table creation:
Works with a PUT to the
/tables/<tableName>
end point. It supports 2 formats for the table schema:VOSITable
andVOTable
. These formats are identified by their correspondingContent-Type
:text/xml
andapplication/x-votable+xml
respectively.Table removal (table drop in DB):
Works with a DELETE to the
/tables/<tableName>
end point.Table load:
Works with a sync POST to a special end point
/load/<tableName>
that is a sibling of the/tables
end point. Supported data formats and their correspondingContent-Type
are:tsv
(text/tab-separated-values
),csv
(text/csv
) andFITSTable
as in FITS Binary Table (application/fits
). Table must exist on the service.Index creation:
Works with an async POST to a special end point
/table-update
that is sibling of the/tables
end point. This mechanism supports the creation of single-column indexes only.