Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This document is an attempt to capture how special values like None/NULL/NA/NaN/Inf/-Inf are handled in PLFM and across different clients as of today.

...

ClientEmpty valueNULLNoneNANaNInf-InfDate
curl (repo-201)

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Empty list

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

"Infinity" or "+Infinity"

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

"-Infinity"

10/19/2017
web client (201)

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourRed
titlePUT


Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

"Infinity" or "+Infinity"

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

"-Infinity"

10/20/2017
python (synapseclient_1.7.2)
Status
colourGrey
titleNot applicable


Status
colourGrey
titleNot applicable

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

Becomes string

Status
colourGrey
titleNot applicable

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

10/20/2017
old r client 
Status
colourRedGrey
titlePUTNot applicable
Status
colourRed
titlePUT
Status
colourGrey
titleNot applicable
Status
colourRed
titlePUT
Status
colourRed
titlePUT
Status
colourRed
titlePUT
Status
colourRed
titlePUT
10/23/2017
synapser
Status
colourRedGrey
titlePUTNot applicable
Status
colourRed
titlePUT
Status
colourGrey
titleNot applicable

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

Becomes "None"

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

10/23/2017

Submission Annotations

API

At the API level, an annotation on a submission has the following types:

  • StringAnnotation
  • DoubleAnnotation
  • LongAnnotation

Client Behaviors

The below experiements are done on DoubleAnnotation on the following services:

...

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

'value' is not set

...

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

...

Related Jira Tickets

  • Jira Legacy
    serverSystem JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverIdba6fb084-9827-3160-8067-8ac7470f78b2
    keySWC-3860
  • Jira Legacy
    serverSystem JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverIdba6fb084-9827-3160-8067-8ac7470f78b2
    keyPLFM-4576

Submission Annotations

API

At the API level, an annotation on a submission has the following types:

  • StringAnnotation
  • DoubleAnnotation
  • LongAnnotation

Client Behaviors

The below experiements are done on DoubleAnnotation on the following services:

10/

ClientEmpty valueNULLNoneNANaNInf-InfDate
curl (repo-201)

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

'value' is not set

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

"Infinity" or "+Infinity"

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

"-Infinity"

10/19/2017
web client (201)Not supported10/20/2017
python (synapseclient_1.7.2)

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourGrey
titleNot applicable

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

Becomes empty

Status
colourGrey
titleNot applicable

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

"Infinity" or "+Infinity"

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

"-Infinity"

10/23/2017
old r client
Status
colourRed
titlePUT
Status
colourRed
titlePUT
Status
colourGrey
titleNot applicable
Status
colourRed
titlePUT
Status
colourRed
titlePUT
Status
colourRed
titlePUT
Status
colourRed
titlePUT
10/23/2017
synapser

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourRed
titlePUT
Status
colourGrey
titleNot applicable

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

Becomes empty

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colour

Red

Yellow
titlePUT

Status
colour

Red

Yellow
title

PUT
GET

"Infinity" or "+Infinity"

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

"-Infinity"

10/23/2017

Table

API

At the API level, a table column has the following types:

...

ClientEmpty valueNULLNoneNANaNInf-InfDate
curl (repo-201)

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

"" becomes NULL

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

Becomes "Infinity" or "+Infinity"

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

Becomes "-Infinity"

10/23/2017
web client (201)

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colourRed
titleupdate
Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

"Infinity" or "+Infinity"

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

"-Infinity"

10/20/2017
python (synapseclient_1.7.2)
Status
colourRedGrey
titleupdateNot applicable
Status
colourGrey
titleNot applicable

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colourGrey
titleNot applicable

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colourGreen
titleupdate

Status

synapser
Status
colourRed
titleupdate
Status
colourRed
titleupdate
Status
colourGrey
titleNot applicable
Status
colourGreen
titlequery

10/23/2017old r client

Yellow
colourGreen
titlequery

10/23/2017old r client







synapser
Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

Becomes NULL

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

Becomes "Infinity" or "+Infinity"

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

Becomes "-Infinity"

10/23/2017

The below experiments are done on DOUBLE on the following services:

GreenqueryYellowupdate

Ignore empty rows

ClientEmpty ValueNULLNoneNANaNInf-InfDate
curl (repo-201)







web client (201)

Status
colourGreen
titleupdate

Status
colour
Yellow
Green
titlequery

Becomes NULLIgnore empty rows

Status
colour
Green
Red
titleupdate
Status
colour
Grey
title
Not applicable
Status
colour
Grey
title
Not applicable

Status
colourYellowGreen
titlequery
Becomes "Infinity" or "+Infinity"
update

Status
colour
Yellow
Green
title
update
query

ClientEmpty ValueNULLNoneNANaNInf-InfDate
curl (repo-201)web client (201)
Status
colourGreen
titleupdate
Status
colourGreen
titlequery
Status
colourYellow
titleupdate

query

Becomes "-Infinity"

10/23/2017

The below experiments are done on DOUBLE on the following services:

Lost in Pandas for row with only None, and becomes NaN in float column

Can be uploaded from csv, cannot be read from Pandas

Status
colourYellow
titlequery

When query, returns "Infinity"

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

When retrieved, returns "-Infinity"
10/20/2017
python (synapseclient_1.7.2)

Status
colourRed
titleupdate

Can be uploaded from csv, cannot be read from Pandas

Status
colourGrey
titleNot applicable

Status
colourRed
titleupdate

Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable

Status
colour

Green

Yellow
titleupdate

Status
colour

Green

Yellow
titlequery

Pandas writes NaN as empty values to csv, but can read NaN from csv

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

When query, returns

float inf turns into "Infinity"

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

When retrieved, returns

float --inf turns into "-Infinity"

10/20/2017
python (synapseclient_1.7.2)old r client
Status
colour
Red
Grey
title
update
Not applicable
Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable

Status
colour

Red

Green
titleupdate

Lost in Pandas for row with only None, and becomes NaN in float column

Status
colour

Grey

Green
title

Not applicable

query

Status
colour

Yellow

Green
titleupdate

Status
colour

Yellow

Green
titlequery

Pandas writes NaN as empty values to csv, but can read NaN from csv

Status
colourYellowGreen
titleupdate

Status
colourYellowGreen
titlequery
float inf turns into "Infinity"

Status
colour

Yellow

Green
titleupdate

Status
colour

Yellow

Green
titlequery

float --inf turns into "-Infinity"

10/2023/2017old r clientsynapser
Status
colourRedGrey
titleupdateNot applicable
Status
colourRedGrey
titleupdateNot applicable
Status
colourGrey
titleNot applicable

Status
colourGreenYellow
titleupdate

Status
query
colourGreen
titlequery

Cannot save a csv that contains 'NA'. However, 'NA' in r data.frame made the round trip.

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

10/2331/2017synapser

Related Jira Tickets

...

  • Jira Legacy

...

  • server

...

  • System JIRA

...

Written to csv as "NA"

...

When read into data.frame, each unique value becomes a column.

...

When read into data.frame, each unique value becomes a column.

...

  • columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverIdba6fb084-9827-3160-8067-8ac7470f78b2
    keySYNPY-576
  • Jira Legacy
    serverSystem JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverIdba6fb084-9827-3160-8067-8ac7470f78b2
    keySYNR-1150
  • Jira Legacy
    serverSystem JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverIdba6fb084-9827-3160-8067-8ac7470f78b2
    keySYNR-1140