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
colour
Yellow
Red
titlePUT
Status
colour
Yellow
Grey
titleNot applicable

Status
GET
"Infinity" or "+Infinity"
colourYellow
titlePUT

Status
colourYellow
titleGETPUT

Becomes empty

Status
colourYellowGreen
titleGET

"-Infinity"

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:

"" becomes NULL

ClientEmpty valueNULLNoneNANaNInf-InfDate
curl (repo-201)
Status
colourYellow
titleupdate
Status
colourYellow
titlequery
Status
colourGreen
titleupdate
Status
colourGreen
titlequery
Status
colour

PUT

Status
colourGreen
titleGET

Status
colourYellow
titlePUT

Status
colourYellow
titleGET

"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:

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

Client Behaviors

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

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
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

synapser
Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable
Status
colourGreen
titlequery

10/23/2017old r client

colourYellow
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
titleupdate

query10/23/2017

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

web client (201
ClientEmpty ValueNULLNoneNANaNInf-InfDate
curl (repo-201)

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
update
colourGreenRed
titleupdate

Can be uploaded from csv, cannot be read from Pandas

Status
colour
Green

Ignore empty rows

Grey
title
query
Not 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) StatuscolourRedtitleupdateCan be uploaded from csv, cannot be read from Pandasold r client
Status
colourGrey
titleNot applicable
Status
colour
Red
Grey
title
update

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

Not applicable
Status
colourGrey
titleNot applicable

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
colourGreen
titleupdate

Status
colourGreen
titlequery

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 client StatuscolourGreytitleNot applicablesynapser
Status
colourGrey
titleNot applicable
Status
colourGrey
titleNot applicable
StatuscolourGreentitleupdate
Status
colour
Green
Grey
title
query
Not applicable

Status
colour

Green

Red
titleupdate

Status
colour
Green
Red
title
query
update

Written to csv as "NA"

Status
colourGreenYellow
titleupdate

Status
colourGreenRed
titlequery

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

Status
colourGreenYellow
titleupdate

Status
query
colourGreenRed
titlequery

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

10/23/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