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
colourGrey
titleNot 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
colourGrey
titleNot 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:

YellowYellow"Infinity" or "+Infinity"

ClientEmpty valueNULLNoneNANaNInf-InfDate
curl (repo-201)

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

status

'value' is not set

Status
colour

Green
titlePUT

Status
colour

Green
titleGET

Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable

Status
colourYellowGreen
titlePUT

Status
colourYellowGreen
titleGET

"-Infinity"

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

Status
colour

Green

Yellow
titleGET

StatuscolourGreytitleNot applicable

"Infinity" or "+Infinity"

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

Becomes empty

StatuscolourGreytitleNot applicable

"-Infinity"

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

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colour
Yellow
Grey
title
PUT
Not applicable

Status
colourYellow
titleGET
"Infinity" or "+Infinity"
PUT

Status
colourYellow
titleGETPUT

Becomes empty

Status
colour
Yellow
Grey
title
GET

"-Infinity"

10/23/2017old r client
Not applicable

Status
colour

Red

Green
titlePUT

Status
colour

Red

Green
title

PUT

GET

Status
colour

Grey

Yellow
title

Not applicable

PUT

Status
colour

Red

Yellow
title

PUT

GET

"Infinity" or "+Infinity"

Status
colour

Red

Yellow
titlePUT

Status
colour

Red Statuscolour

Yellow
title

PUT

GET

"-Infinity"

10/23/2017old r client
Status
colourRed
titlePUT
10/23/2017synapser
Status
colour
Green
Red
titlePUT
Status
colour
Green
Grey
title
GET
Not applicable
Status
colourRed
titlePUT
Status
colourGreyRed
titleNot applicablePUT
Status
colour
Yellow
Red
titlePUT
Status
colour
Yellow
Red
title
GETBecomes empty
PUT
10/23/2017synapser

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourRed
titlePUT
Status
colourRedGrey
titlePUT
10/23/2017

Table

API

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

  • STRING
  • DOUBLE
  • INTEGER
  • BOOLEAN
  • DATE
  • FILEHANDLEID
  • ENTITYID
  • LINK
  • LARGETEXT
  • USERID

Client Behaviors

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

curl (repo-201)query-Infinity"

ClientEmpty valueNULLNoneNANaNInf-InfDate
Not applicable

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

Becomes empty

Status
colourGreen
titlePUT

Status
colourGreen
titleGET

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

"Infinity" or "+Infinity"

Status
colourYellow
title

update

PUT

Status
colourYellow
title

query

GET

"

" becomes NULL
Status
colourGreen
titleupdate
Status
colourGreen
titlequery
Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable

Status
colourGreen
titleupdate
Status
colourGreen
title10/23/2017

Table

API

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

  • STRING
  • DOUBLE
  • INTEGER
  • BOOLEAN
  • DATE
  • FILEHANDLEID
  • ENTITYID
  • LINK
  • LARGETEXT
  • USERID

Client Behaviors

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

Becomes "-Infinity"

title

ClientEmpty valueNULLNoneNANaNInf-InfDate
curl (repo-201)

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

Becomes

"

Infinity" or "+Infinity"

" becomes NULL

Status
colour

Yellow
titleupdate
Status
colourYellow
titlequery
10/23/2017web client (201)

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colourRed

update
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/2023/2017python (synapseclient_1.7.2web client (201)

Status
colour

Grey

Green
title

Not applicable

update

Status
colour

Grey

Green
title

Not applicable

query

Status
colour
Green
Red
titleupdate
Status
colour
Green
Grey
title
query
Not applicable
Status
colourGrey
titleNot applicable

Status
colourGreen
titleupdate

Status
colourGreen
titlequery

Status
colour

Green

Yellow
titleupdate

Status
colour

Green

Yellow
titlequery

"Infinity" or "+Infinity"

Status
colour

Green

Yellow
titleupdate

Status
colour

Greentitlequery10/23/2017old r clientsynapser StatuscolourGreytitleNot applicable StatuscolourGreytitleNot applicable StatuscolourGreytitleNot applicable StatuscolourYellow

Yellow
titlequery

"-Infinity"

10/20/2017python (synapseclient_1.7.2)
Status
colourGrey
titleNot 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
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

Becomes "-Infinity"

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

Status
colourYellow
title

query10/23/2017

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

Ignore empty rows

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

Status
colourYellow
titlequery

When query, returns "Infinity"

Status
colourYellow
titleupdate

Status
colourYellow
titlequery

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

Status
colourRed
titleupdate

Can be uploaded from csv, cannot be read from Pandas

Status
colourGrey
titleNot applicable

Status
colourRed
titleupdate

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

Status
colourGrey
titleNot applicable

Status
colour

Grey

Yellow
title

Not applicable

update

Status
colour

Green StatuscolourGreentitlequery

Yellow
title

update

query

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/2017python (synapseclient_1.7.2)old r client
Status
colour
Red
Grey
title
updateCan be uploaded from csv, cannot be read from Pandas
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
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable

Status
colourGreenYellow
titleupdate

Status
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

...

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

...

  • System JIRA

...

Written to csv as "NA"

...

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