Skip to main content

A Python implementation of the Simple Data Transfer Protocol data structures, function, and server

Project description

The Simple Data Transfer Protcol

This is a reference server and library for the Simple Data Transfer Protocol. It demonstrates the Simple Data Transfer Protocol Server API. It also functions as an open framework, so new Tables can be attached to the Simple Data Transfer Protocol server by providing a Class with a get_rows() method and a columns property. The README.md file in each directory gives the documentation for the utilities and classes in that directory.

The structure is as follows:

├── sdtp
│   ├── sdtp_server: A reference SDTP server and middleware
│   ├── sdtp: The basic SDTP types, including Filters and Tables

The Simple Data Transfer Protocol

The SDTP Server implements the Simple Data Transfer Protocol, a universal way to query and transmit tabular data. The SDTP uses http/https as the underlying transport protocol. There is no client; rather, a program accessing an SDTP server creates a RemoteSDMLTable (see sdtp.sdtp_table.py) and accesses that through the standard SDTP Table methods.

This is a quick summary of the Simple Data Transfer Protocol. A more extended description can be found at:

Basic Data Structure

The core data structure of the SDTP is a table, which is simply a list of list of values. Conceptually, it is equivalent to a SQL database table; each column has a specific type and each row is of the same, fixed length. The Python definitions are in sdtp.sdtp_table.py. Columns is the only mandatory entry for a table. It is a list of columns, each of which is a dictionary with two mandatory fields: name and type. Other fields (e.g., to express units or other metadata) are permitted.

The Python implementation of table types is in sdtp.sdtp_table.py

Simple Data Transfer Protocol Data Types

This is a list of the permissible types. Each column of a table is of one of these types See sdtp.sdtp_utils.py. The native types these convert to are language-specific

  1. SDML_STRING: A string. In Python, class str.
  2. SDML_NUMBER: A real or an integer. In Python, class float or class int.
  3. SDML_BOOLEAN: true or false. In Python, class bool.
  4. SDML_DATE: A date. In Python, class datetime.date
  5. SDML_DATETIME: A datetime. In Python, class datetime.datetime
  6. SDML_TIME_OF_DAY: A time. In Python, class datetime.time

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sdtp-0.2.7.tar.gz (39.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sdtp-0.2.7-py2.py3-none-any.whl (32.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file sdtp-0.2.7.tar.gz.

File metadata

  • Download URL: sdtp-0.2.7.tar.gz
  • Upload date:
  • Size: 39.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for sdtp-0.2.7.tar.gz
Algorithm Hash digest
SHA256 ae4ab8aa323872f0b68edd6935db5dbbc195de7086307dfa2703fc803c1e2c88
MD5 c58ba743ab5273f0bd25d959cf23eebd
BLAKE2b-256 880a4ce43c5fcfa2177ca3574b1da3230c22963bf0a33afb2a6314c7c92ae354

See more details on using hashes here.

File details

Details for the file sdtp-0.2.7-py2.py3-none-any.whl.

File metadata

  • Download URL: sdtp-0.2.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for sdtp-0.2.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 160a5b198261cc693ad7dd2bf7e01ecb81bb186274f3375069b59650188e3e86
MD5 1cda1655daa0bcc17a74e59b1b1ce4c3
BLAKE2b-256 5e796c7b8067d5228eefa9f3e4f0113318361ef2543a2702ce8d8af8a23ad964

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page