Issue and loss codes ​
Every code graph-io records. An import records codes in its report; checkExport() returns codes before a save. Codes starting with E_ are errors: an import skips the element, or a save refuses to write. Codes starting with W_ are warnings: the element is kept or the file is written, with the change the entry describes. Each entry names the formats that use the code, so you can switch on the codes you expect.
A refused save throws a GraphFormatError whose code names the kind of failure rather than the note: E_INVALID_ID for ids, E_DIRECTED for edge direction, and E_COLUMN_TYPE or E_UNSUPPORTED for values. Saving graphs has the details.
Some entries name attribute types: i32 and u32 are 32-bit integers (signed and unsigned), u8 a byte, f32 and f64 32- and 64-bit floating-point numbers (f64 is a JavaScript number), bool true or false, string text, dict text stored once per distinct value (for values that repeat), and list and json lists and nested JSON values. A role is the meaning a file gives an attribute: the node label, the edge weight, a position. See Reading the graph.
Errors ​
E_AMBIGUOUS_GRAPH_NAME:graphNamematches more than one graph; the message lists their positions. The import stops. Import: json, gml, dot, pajek, xgmml, cx, cys.E_BAD_ASPECT_BLOCK: A CX file is an array of blocks, each an object with one key ({"nodes": [...]}). A member of that array that is not such a block cannot be read and is skipped; the rest of the file is read. Import: cx2, cx.E_BAD_ELEMENT: A node record or an element is not an object. Import: json.E_BAD_INDEX: An index endpoint is not an integer below the node count, or names a skipped node. Import: json.E_BAD_LINE: A line theparseLinefunction of a format made with defineLineFormat() could not read (it threw). The line is skipped; the message is the one the function threw with.E_BAD_VALUE: A value does not parse as its declared type; the cell is left unset. Import: json, gexf, xgmml, cx2, cx, obo, cys.E_COLUMN_TYPE: A value that does not fit its attribute's type. An import records it for a value that does not parse as the type the file declares for it ("x" in an integer attribute): GraphML and GEXF leave that value unset, Neo4j CSV skips the row. A save throws it when an attribute value cannot be written in the format;checkExport()returns theE_note that names the attribute. Import: graphml, gexf, neo4j.E_CSV_BAD_TYPE: A Type cell outside Directed / Undirected / Mutual. Import: csv.E_CSV_FIELD_COUNT: A row with a different number of fields than the header; the row is skipped. An adjacency list read withouttable: "adjacency"gives one per long row, and the first one's message suggests the option. Import: csv.E_CSV_NO_ENDPOINT_COLUMNS: The header names no source and target columns and no id column. PasssourceColumnandtargetColumnto name the columns. The import stops. Import: csv.E_CSV_NO_ID_COLUMN: The node table has no id column. PassidColumnto name it, orrowNumberIds: trueto number the rows. The import stops. Import: csv.E_CSV_OTHER_FORMAT: The input starts like another format (XML or HTML, JSON, GML, DOT or Pajek), not CSV. The import stops. Import: csv.E_CSV_QUOTE: There is text after a closing quote, such as"a"b. Inside a quoted field, write a quote as two quotes. The import stops. Import: csv, neo4j.E_CSV_UNCLOSED_QUOTE: A quoted field is never closed. The import stops. Import: csv, neo4j.E_CX2_ALIAS_CONFLICT: An alias that is another attribute's name or another attribute's alias; the alias is ignored. Import: cx2.E_CX2_DECLARATION_CONFLICT: An attribute declared twice with two different types; the first declaration wins. Import: cx2.E_CX2_NO_DESCRIPTOR: The document is not a JSON array, or its first element is not the CX2 descriptor withCXVersion. The import stops. Import: cx2.E_CX2_NO_STATUS: The document has no status block, or a malformed one. Import: cx2.E_CX2_VERSION:CXVersionnames a version other than 2 ("1.x" means the file is CX1; read it ascx). The import stops. Import: cx2.E_CX_NOT_CX: The document is not a CX array, or it is CX2 (the message says so; read it ascx2). The import stops. Import: cx.E_CYS_CORRUPT: The archive is damaged: no end record, offsets outside the file, a bad CRC, truncated data. Import: cys.E_CYS_NOT_SESSION: A zip without a session marker (<x.y.z>.versionorcysession.xml). Import: cys.E_CYS_NOT_ZIP: The input is not a zip archive (or is text). Import: cys.E_CYS_TABLE: A table or a virtual column that cannot be read at all; it is skipped. Import: cys.E_CYS_UNSUPPORTED: A zip feature the reader does not support: encryption, a compression method, split archives. Import: cys.E_CYS_VERSION: A session version graph-io cannot read: a major above 3, or the 2011 3.0 pre-release layout. Import: cys.E_DOT_NESTING: Subgraphs or braces are nested deeper than graph-io reads. The import stops. Import: dot.E_DOT_TRAILING_BACKSLASH: An id, name or text with a backslash before a quote or a line break, or at its end, cannot be written as a DOT quoted string; the save fails. Save: dot.E_DUPLICATE_EDGE: A second edge between the same two nodes underduplicateEdges: "error"; the import stops. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.E_DUPLICATE_EDGE_ID: A repeated edge id in a format whose edge ids are unique; the second edge is skipped. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.E_DUPLICATE_KEY: A declaration's key / attribute id is declared twice. Import: graphml.E_EMPTY_INPUT: The input is empty. The import stops. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.E_FETCH: The URL could not be fetched (network failure, CORS refusal or a non-2xx status).E_FOREIGN_FORMAT: The input is a known kind of file that is not a graph: an HTML page, a PDF, compressed or zip data, or an image. The import stops. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.E_GEXF_ATTRIBUTES_CLASS: An<attributes class>outside node / edge. Import: gexf.E_GEXF_ATTRIBUTE_ID: An<attribute>without an id. Import: gexf.E_GEXF_EDGE_TYPE: An edgetypeoutside directed / undirected / mutual. Import: gexf.E_GEXF_MISSING_NODES:<edges>without<nodes>. Import: gexf.E_GML_ELEMENT_TYPE: Anode/edgekey whose value is not a record. Import: gml.E_GML_FLAG_TYPE: Adirected/multigraphflag that is not an integer. Import: gml.E_GML_GRAPHICS_CONFLICT: A graphics record that cannot hold the position. Save: gml.E_GML_ID_TYPE: A node id, source or target that is neither an integer nor a string. Import: gml.E_GML_INVALID_KEY: An attribute name GML cannot use as a key (keys are letters and digits, starting with a letter). The save fails unlesssanitizeKeysis "mangle". Save: gml.E_GML_MISSING_LABEL: A node without alabelunder nodeIdFrom "label". Import: gml.E_GML_NESTED_ARRAY: An attribute holds an array inside an array, which GML cannot write; the save fails. Save: gml.E_GML_REPEATED_KEY: A structural key repeated in one element. Import: gml.E_GML_RESERVED_KEY: A column named like a structural key. Save: gml.E_GRAPHML_DATA_MISSING_KEY: A<data>without a key attribute. Import: graphml.E_GRAPHML_DATA_NESTED: Nested elements in the<data>of a typed (non-yfiles) key. Import: graphml.E_GRAPHML_HYPEREDGE_ENDPOINT: An endpoint of a hyperedge without a node, or with an unknown type. Import: graphml.E_GRAPHML_INVALID_DIRECTED: Adirectedattribute that is neither true nor false. Import: graphml.E_GRAPHML_INVALID_EDGEDEFAULT: Anedgedefaultthat is neither directed nor undirected. Import: graphml.E_GRAPHML_KEY_FOR_INVALID: A<key>whoseforis not a GraphML domain. Import: graphml.E_GRAPHML_KEY_MISSING_ID: A<key>without an id. Import: graphml.E_GRAPHML_UNKNOWN_KEY: A<data>whose key was never declared. Import: graphml.E_GRAPHML_YFILES_TREE: A yEd graphics value that is not valid XML; the save fails withE_COLUMN_TYPE. Save: graphml.E_GRAPH_NOT_FOUND:graphIndexis past the last graph in the file, orgraphNamematches none of them. The import stops, and the message lists the index and name of each graph the file holds. Import: json, gml, dot, pajek, xgmml, cx, cys.E_HYPEREDGE: A hyperedge (an edge with more than two ends) whilehyperedgesis "error". The import stops. Import: json, graphml.E_HYPEREDGE_SHAPE: A JGF hyperedge with neither a nodes array nor source / target arrays. Import: json.E_ID_CHARSET: Node ids the format cannot write, undersanitizeIds: "error"; the save fails withE_INVALID_ID. PasssanitizeIds: "mangle"to rewrite them. Save: any format.E_ID_TEXT_COLLISION: Two node ids would be written as the same text (the number 5 and the text "5"); the save fails withE_INVALID_ID. Save: any format.E_INVALID_ENCODING: Some bytes are not valid in the encoding that was chosen (by a byte order mark, the file's own declaration or theencodingoption). The import stops. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.E_INVALID_ID: A node id of a type the graph cannot hold (an empty id, a non-finite number, an object). The node is skipped. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.E_INVALID_UTF8: The input is not valid UTF-8. The import stops. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.E_INVALID_WEIGHT: An edge weight that is not a number (text such as "2,5" with a decimal comma, NaN, a boolean). The whole edge is skipped, not only its weight. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.E_JSON_DIALECT: No dialect matches the document's top-level shape. The import stops. Import: json.E_JSON_SHAPE: A section (nodes, edges, elements, graph) has the wrong JSON type. Import: json.E_MISSING_ENDPOINT: An edge has no source or no target. Import: json, graphml, gexf, csv, gml, neo4j, xgmml, cx2, cx, cys.E_MISSING_ID: The element (node, attribute, key, ...) has no id where the format requires one. Import: json, graphml, gexf, csv, gml, neo4j, xgmml, cx2, cx, obo, cys.E_MIXED_DIRECTION: The graph has both directed and undirected edges andonMixedDirectionis "error". An import stops; a save to a format that holds one direction per file fails withE_DIRECTED. Pass "directed" or "undirected" to read or write it anyway. Import: graphml, gexf, csv, gml, dot, xgmml, cys. Save: any format.E_NEO4J_COLUMN_COUNT: A row with a different field count than the header. Import: neo4j.E_NEO4J_ENDPOINT_SPACE: A spaced relationship endpointSpace:idthat names a node declared without a space; the row is skipped. Import: neo4j.E_NEO4J_HEADER: The file has no header, or a header neo4j-admin would refuse. The import stops. Import: neo4j.E_NEO4J_ID_COLUMN_TAKEN: TheidColumnname is already a node attribute; the save fails. Save: neo4j.E_NEO4J_ID_SPACE_COLLISION: A spaced node idSpace:idthat equals the text of an id declared without a space. Import: neo4j.E_NEO4J_WEIGHT_COLUMN_TAKEN: TheweightColumnname is already an edge attribute; the save fails. Save: neo4j.E_NOT_GEXF: The root element is not<gexf>. The import stops. Import: gexf.E_NOT_GRAPHML: The root element is not<graphml>. The import stops. Import: graphml.E_NO_GRAPH: The file declares no graph at all. The import stops. Import: graphml, gexf, gml, xgmml, cx, cys.E_OBO_NOT_OBO: Nothing in the input looks like OBO: there is no frame header and no header tag. It may be an HTML page, a JSON or GML file, or UTF-16 text without a byte order mark. The import stops. Import: obo.E_PAJEK_INTERVAL: A malformed time interval token. Import: pajek.E_PAJEK_LINE: A line that is not in Pajek's syntax for its section (an arc, edge, list, matrix row, partition or vector value); it is skipped. Import: pajek.E_PAJEK_MATRIX_ROWS: A*Matrixsection with the wrong number of rows (N, or N1 in a two-mode network). Import: pajek.E_PAJEK_NO_VERTICES: There is no*Verticessection: the file is empty or not a Pajek network. The import stops. Import: pajek.E_PAJEK_OBJECT_COUNT: A*Partitionor*Vectorwhose value count differs from the network's vertex count; values beyond it are dropped, vertices without one are unset. Import: pajek.E_PAJEK_OUTSIDE_SECTION: A data line before the first section header. Import: pajek.E_PAJEK_TEXT: A label or text value holds a double quote or a line break, which Pajek cannot write; the save fails withE_UNSUPPORTED. Save: pajek.E_PAJEK_UNTERMINATED_QUOTE: A double quote not closed before the end of the line. Import: pajek.E_PAJEK_VERTEX_LINE: A vertex line that is not in Pajek's vertex syntax; the vertex is skipped. Import: pajek.E_PAJEK_VERTEX_RANGE: A vertex number outside the declared range. Import: pajek.E_PAJEK_VERTICES_COUNT:*Verticeswithout a vertex count, with a count too large to hold, or with a first-mode count outside 0 to N; the import stops. Import: pajek.E_PARENT_CYCLE: A containment link would close a parent cycle; that one link is dropped. Import: json, gexf, xgmml, cx, cys.E_PARSE: No longer recorded; kept so code that switches on older reports still compiles.E_SELF_LOOP: An edge from a node to itself underselfLoops: "error"; the import stops. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.E_STATUS_FAILED: The program that wrote the file marked it as failed (CXstatus.success: false), so it is incomplete. The import stops. Import: cx2, cx.E_SYNTAX: The text breaks the format's syntax; the message says where and how. The import stops. Import: json, gml, dot, pajek, cx2, cx.E_TOO_LARGE: The input is beyond a size limit (a zip's uncompressed total or ratio, a document longer than one string); the same string as graph-format'sE_TOO_LARGE, recorded with category "unsupported". Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.E_UNKNOWN_FORMAT: The input is in no format graph-io can read (or none of the formats you registered, for your own FormatRegistry). Passformatwhen you know what the file is.E_UNKNOWN_NODE: An edge names a node the file never declares, whileaddMissingNodesis false. The edge is skipped. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.E_UNKNOWN_PARENT: Apid/ parent reference names a node the document never declares. Import: json, graphml, gexf, xgmml, cx, cys.E_UNSUPPORTED_ID: A node id is a JSON boolean or null, which graph-io cannot use as an id; the node is skipped. Withids: "string"it is read as the text "true", "false" or "null". Import: json.E_XGMML_VIEW_DOCUMENT: The file is a Cytoscape session view (cy:view="1"), which holds only view settings and no nodes or edges. The import stops. Import: xgmml, cys.E_XML_ILLEGAL_CHAR: A text value holds a character XML 1.0 forbids (most control characters); the save fails withE_COLUMN_TYPE. Save: any format.E_XML_SYNTAX: The XML is not well-formed; the message says where. The import stops. Import: graphml, gexf, xgmml, cys.
Warnings ​
W_ASPECT_ORDER: A CX aspect out of its place (after the post-metadata, a status that is not last, a block buffered for what it depends on). Import: cx2, cx.W_ATTRIBUTE_RENAMED: An attribute's name is one GEXF reserves, so a GEXF import would give it another name. Save: gexf.W_BAD_DEFAULT: The declared default does not parse as the declared type; the column has no default. Import: graphml, gexf, cx2.W_BAD_FLAG: A graph-level flag (directed,multigraph, graphologyoptions) has the wrong type; the default is used. Import: json.W_BAD_OPTIONS: A declared option does not parse as the declared type; the options are dropped. Import: gexf.W_COLUMN_AS_PROPERTY_VALUE: An ontology exporter (OBO, OBO Graphs) writes a node column outside its vocabulary as property values; it reads back inside theproperty_valuecolumn. Save: json, obo.W_COLUMN_DROPPED: A node or edge attribute is not written, because the format has nowhere to put it. Save: any format.W_COLUMN_NAME_CHANGED: An attribute with a role (for example, the label) is written where the format keeps that role, and reads back under the name the format's importer gives it. Save: any format.W_COLUMN_RENAMED: An attribute was renamed<name>#<suffix>because another attribute already has its name, for example a repeated column header. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.W_COMPONENTS_FLATTENED: An attribute with several numbers per element (other than a position) is written as separate values or a list, and does not read back as one attribute. Save: any format.W_CONTROL_CHARACTER: The text holds a control character, such as a NUL byte or an escape character, which is kept in the id or value it is part of; or it ends with a Ctrl-Z end-of-file marker, which was ignored. Reported once per import. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.W_COUNT_HINT: A node or edge count the file announces is too large to reserve room for; it is ignored and the elements are read as they come. Import: graphml, gexf.W_COUNT_MISMATCH: A declared element count disagrees with what was read. Import: graphml, gexf, cx2, cx.W_CSV_AMBIGUOUS_COLUMN: Several header columns name one role; the one not chosen is a plain attribute. Import: csv.W_CSV_COLUMN_MISSING: An explicitly named weight column the file does not have. Import: csv.W_CSV_COMMENT_DIRECTION: A leading comment's direction disagrees with defaultDirected or an earlier comment. Import: csv.W_CSV_COMMENT_LIKE_RECORD: A leading # / % line skipped as a comment has the fields of a record. Import: csv.W_CSV_DIRECTION_DROPPED: The generic dialect has no direction column; an undirected or mixed graph reads back as directed. The Gephi dialect loses the direction of an undirected graph without edges (no row carries a Type cell). Save: csv.W_CSV_EDGE_COLUMNS: An adjacency table holds no edge column but the weight: edge ids, labels and attributes are not written. Save: csv.W_CSV_HEADERLESS:header: falsewith columns a file without a header cannot name: graph-io reads such a file by position (source, target, weight, then columns it names column4, column5, ...), so these columns read back under other names or in the wrong place (for example, an edge id in the weight's place). Write the header, or write only source, target and weight withdialect: "generic". Save: csv.W_CSV_ISOLATED_NODES: The edge table has no row for a node without edges, so isolated nodes are missing when the file is read back. Write the node table too (table: "nodes"). Save: csv.W_CSV_NODE_ORDER: The edge table lists nodes in the order they first appear in an edge, so the node order changes when the file is read back. Save: csv.W_CSV_NODE_TABLE: Node attributes are written by atable: "nodes"export only. Save: csv.W_CSV_NONFINITE: NaN / Infinity in a numeric column read back as text. Save: csv.W_CSV_NO_DATA_ROWS: A header and no data rows. Import: csv.W_CSV_PADDED_ID: An id that is not quoted has spaces at its start or end; they are kept, so it is a different id from the trimmed text. Reported once per import. Import: csv.W_CSV_RESERVED_NAME: An attribute column named like a reserved header is not written. Save: csv.W_CSV_ROLE_NAME: A role column (id, label) whose name the importer does not recognize; the role is lost. Save: csv.W_CSV_SINGLE_COLUMN: Every row is one cell another delimiter would split (a likely wrong delimiter option). Import: csv.W_CSV_STRAY_QUOTE: A quote inside a field that does not start with a quote is kept as part of the text. Reported once per import. Import: csv.W_CSV_TEXT_ROLE: An id or label attribute that is not text reads back as text. Save: csv.W_CSV_TRAILING_DELIMITER: Every data row ends in one extra delimiter; the empty last cell is dropped. Reported once per import. Import: csv.W_CSV_TRAILING_HEADER_DELIMITER: The header ends in a delimiter; rows without the empty last cell are complete. Import: csv.W_CSV_TYPE_COLUMN_IGNORED: A column named likeTypeholds direction words (Directed, Undirected), but graph-io reads direction only from aTypecolumn besideSourceandTarget, or from thetypeColumnoption. Reported once per import. Import: csv.W_CSV_WEIGHT_AS_ATTRIBUTE: In a file without a header, the third column holds text, so it is read as an attribute, not as the edge weight. Reported once per import. Import: csv.W_CX2_ALIAS_BYPASSED: A full attribute name used where its alias is declared; read as the same attribute. Import: cx2.W_CX2_EXTRA_ELEMENTS: An aspect that holds one element holds several; the first is read. Import: cx2.W_CX2_JSON_AS_STRING: A nested (json) column is written as a string attribute holding its JSON text. Save: cx2.W_CX2_LEGACY_LAYOUT: A CX1 cartesianLayout aspect next to node coordinates; kept, not applied. Import: cx2.W_CX2_MINOR_VERSION: CXVersion is a 2.x other than "2.0" (or not a string); the document is read. Import: cx2.W_CX2_NETWORK_DECLARATION: A network attribute declaration with an alias or a default, which CX2 forbids; both ignored. Import: cx2.W_CX2_NONFINITE_AS_NULL: NaN and the infinities cannot be written; they are written as null and read back unset. Save: cx2.W_CX2_PARTIAL_LAYOUT: Some nodes have coordinates and others none, or a node has x without y. Import: cx2.W_CX2_RESERVED_KEY: A node or edge attribute namedid, which the specification reserves. Import: cx2.W_CX2_UNDECLARED_ATTRIBUTE: An attribute value whose name no declaration covers; its column is inferred. Import: cx2.W_CX2_UNDECLARED_FRAGMENTS: An aspect appears in several blocks although the descriptor does not declare fragments. Import: cx2.W_CX2_UNDIRECTED_AS_DIRECTED: Every edge is written as directed, so an undirected graph, or the undirected edges of a mixed graph, read back as directed. Save: cx2.W_CX_GROUP_NODE_ADDED: A cyGroups group whose id is not a node: the group node is added. Import: cx.W_CX_JSON_AS_STRING: A nested (json) column is written as a string attribute holding its JSON text. Save: cx.W_CX_NUMBER_VERIFICATION: NumberVerification holds another value than 2^48 - 1, or comes twice. Import: cx.W_CX_OLD_ASPECT_NAME: An old Cytoscape aspect name (visualProperties, subNetworks, ...) read under its cy name. Import: cx.W_CX_ROOT_ONLY: Nodes or edges of the root network that no subnetwork holds: Cytoscape shows them in no network; not read. Import: cx.W_CX_UNDIRECTED_AS_DIRECTED: Every edge is written as directed, so an undirected graph, or the undirected edges of a mixed graph, read back as directed. Save: cx.W_CYS_COLLAPSED_GROUP: The members of a collapsed group are not in the network itself; they are listed insnapshot.meta.extra. Import: cys.W_CYS_DUPLICATE_ENTRY: Two entries with one name; the first is read. Import: cys.W_CYS_ENTRY_SKIPPED: Entries the importer does not read (apps, global tables, properties, images, thumbnails). Import: cys.W_CYS_JSON_AS_STRING: A nested (json) column is written as a text column holding its JSON text. Save: cys.W_CYS_LIST_ITEMS: List cells CyCSV cannot hold exactly: an unset or empty list of text reads back as [""], an empty list of numbers or booleans reads back unset, trailing empty text items vanish, and an item holding a newline splits in two. Save: cys.W_CYS_POSITION: A position that cannot be written as it is: another shape, a non-finite coordinate, a z read back in the z column. Save: cys.W_CYS_SESSION_RECORD: A cysession.xml network record without an id, or naming a file an earlier record names. Import: cys.W_CYS_TABLE_ROW: Table rows with too few or too many cells, a repeated key, or a key matching no element. Import: cys.W_CYS_TEXT_AS_EQUATION: A text cell starting with "=" is a formula to Cytoscape (an error cell there); graph-io reads it back as text. Save: cys.W_CYS_UNSET_AS_EMPTY_STRING: CyCSV has no unset text cell: an unset cell of a text column reads back as "". Save: cys.W_DANGLING_REFERENCE: A reference that is not a containment link (an attribute's element id, a layout or bypass entry, a subnetwork member, a view's network, an undeclared target) names nothing; reported once per kind with the count. Import: json, graphml, neo4j, xgmml, cx2, cx, obo, cys.W_DECLARED_TYPE: An attribute type that this GEXF version does not have (GEXF 1.2 has no date, dateTime or typed lists) is written as the nearest type it has. Save: gexf.W_DEFAULT_DROPPED: A declared default in a format without defaults. Save: any format.W_DIRECTION_DROPPED: The file cannot record direction: an undirected graph's edges read back as directed, or the whole graph reads back with the importer's default direction. Save: json.W_DIRECTION_FORCED:onMixedDirection("directed" or "undirected") made edges take a direction the file did not give them. It can appear twice in one report: once for the direction the file declares and once for the edges that declared their own. Import: graphml, gexf, csv, gml, dot, xgmml, cx2, cx, cys.W_DIRECTION_REFUSED: You read into a graph builder that already holds edges (or whose direction is locked), and its direction differs from the file's, so the file is read with the builder's direction. A builder without edges takes the file's direction. Import: graphml, gexf, csv, gml, dot, xgmml, cx2, cx, cys.W_DOT_ATTRIBUTE_CLASH: A plain column named like an attribute the exporter writes for a role (weight, key, pos) is not written. Save: dot.W_DOT_BAD_POS: A node'sposis not a point, or is too large for a 32-bit float position; the value was dropped. Import: dot.W_DOT_CLUSTER_CONFLICT: A node mentioned in two unrelated clusters keeps the first. Import: dot.W_DOT_CLUSTER_MARKED: A parent that is a plain node is written as a node and a cluster of one name; it reads back marked as a cluster. Save: dot.W_DOT_CLUSTER_NODE_MERGED: A plain node and a cluster share a name and were merged into one container node. Import: dot.W_DOT_COMPASS_POINT: The second part of a port (a:p:zz) is not a compass point; kept as written, as Graphviz warns. Import: dot.W_DOT_EDGE_OPERATOR: An edge operator contradicting the graph keyword, read under mismatchedEdgeOperator "operator" or "header". Under "error" the import stops withE_SYNTAXinstead. Import: dot.W_DOT_KEY_MERGED: An edge merged into an earlier one with the same endpoints andkey. Import: dot.W_DOT_LATE_CHARSET: Acharsetattribute beyond the head the decoder reads it from; the input was decoded without it. Import: dot.W_DOT_NODE_PORT_DROPPED: A port on a node statement has no meaning and was dropped. Import: dot.W_DOT_NON_FINITE: NaN or an infinity has no DOT number spelling; it is written as text and reads back as text. Save: dot.W_DOT_NUMERAL_AMBIGUITY: A badly delimited numeral (1e3) split into two tokens, as Graphviz does with a warning. Import: dot.W_DOT_POSITION_SHAPE: A position column that is not a node column of 2 or 3 components is not written. Save: dot.W_DOT_POS_DIMS: Nodeposvalues mix two and three coordinates; the position column records the first's. Import: dot.W_DOT_STRICT_MERGED: A parallel edge merged into an earlier one understrict. Import: dot.W_DOT_SUBGRAPH_ATTRIBUTES_DROPPED: Attributes of a subgraph that is not a cluster (rank=same and the like) cannot be represented. Import: dot.W_DTYPE_UNSUPPORTED: An attribute's type is one the format cannot store as it is (for example, a 32-bit float in a format that has only 64-bit numbers), so it reads back with the nearest type the format has. Save: any format.W_DUPLICATE_ATTRIBUTE: The same attribute twice on one element; one value is kept (the later, unless the format's specification says the first). Import: json, graphml, gexf, dot, pajek, xgmml, cx2, cx, obo, cys.W_DUPLICATE_NODE: A node id declared twice; the second declaration merges into the first. Import: json, graphml, gexf, csv, gml, pajek, neo4j, xgmml, cx2, cx, obo, cys.W_DYNAMIC_VALUES_DROPPED: Dynamic attribute values (extension tables) in a format without them. Save: any format.W_EDGES_MERGED: TheduplicateEdgesoption merged parallel edges into one edge per pair, so whatever told them apart (an OBO relation, a label) is lost. Recorded once, with the number merged.W_EDGE_IDS_DROPPED: The graph has edge ids and the format has no place for them, so they are not written. Save: any format.W_EDGE_IDS_GENERATED: The format needs an id on every edge and the graph has none, so the file gets ids e0, e1, e2 and so on, which read back as edge ids. Save: any format.W_EDGE_ID_STRINGIFIED: Edge ids of mixed JSON types were stored as text. Import: json.W_EMPTY_COLUMN_DROPPED: A declared column whose every row is unset is not written by a format without declarations. Import: json. Save: any format.W_ENCODING_CONFLICT: A byte order mark, theencodingoption and the encoding the file declares disagree, or the file declares UTF-16 over bytes that are not UTF-16; the message names which one applied (a BOM wins over the option and the declaration, the option over the declaration). Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.W_ENCODING_FALLBACK: Bytes that are not valid UTF-8 (and declare no other encoding) were read as windows-1252. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.W_EQUATION_AS_TEXT: A formula (Cytoscape's=ABS($x)) is kept as its text; it is never evaluated. Import: xgmml, cys.W_EXTENSION_TABLE_DROPPED: An extension table the format cannot carry. Save: any format.W_GEXF_ATTRIBUTE_TYPE: An attribute type the importer maps to string. Import: gexf.W_GEXF_ATTVALUE_SHAPE: An<attvalue>without a value. Import: gexf.W_GEXF_EDGE_ID_TEXT: A numeric edge id column: GEXF edge ids read back as strings. Save: gexf.W_GEXF_HEADER_VALUE: A<graph>header attribute with an unknown value. Import: gexf.W_GEXF_KIND_DROPPED: GEXF 1.2 has no parallel-edgekind; the kind column is dropped. Save: gexf.W_GEXF_OPEN_BOUND_CONFLICT: Bothstartandstartopen(orendandendopen) on one element. Import: gexf.W_GEXF_SPELL_OPEN_DROPPED: Deprecated and no longer recorded: open spells are kept in the spells.open column. Import: gexf.W_GEXF_TIMED_VALUE_ON_STATIC: A timed value on an attribute of a static group. Import: gexf.W_GEXF_TIMESTAMP_CONFLICT: Bothtimestampandstart/endon one element or value. Import: gexf.W_GEXF_UNKNOWN_ATTRIBUTE: An<attvalue for>naming an undeclared attribute. Import: gexf.W_GEXF_VALUE_OUTSIDE_OPTIONS: A value outside the declared<options>(kept). Import: gexf.W_GEXF_VIZ_DTYPE: A visual attribute (position, color, size, thickness) is stored at more precision than GEXF keeps; it reads back as a 32-bit float. Save: gexf.W_GEXF_VIZ_DYNAMIC_DROPPED: A 1.2 dynamic viz element whose bounds were dropped. Import: gexf.W_GEXF_VIZ_SKIPPED: Viz elements skipped under viz: false. Import: gexf.W_GEXF_VIZ_VALUE: A viz value that could not be read. Import: gexf.W_GEXF_WEIGHT_IGNORED: The XML weight attribute ignored under weightFrom null. Import: gexf.W_GML_FLAG_VALUE: Adirected/multigraphflag outside 0 / 1, or repeated. Import: gml.W_GML_GRAPHICS: A node's graphics value that cannot give a position as written; kept in the graphics json column. Import: gml.W_GML_GRAPHICS_OVERRIDDEN: A graphics record whose x / y / z the position column overrides. Save: gml.W_GML_GROUPS: YEd's isGroup / gid keys, kept as plain columns; the hierarchy is not read as containment. Import: gml.W_GML_ID_DROPPED: UndernodeIdFrom: "label"or"index"the file's integer ids are not kept. It is listed inreport.lossy, not inreport.issues. Import: gml.W_GML_JSON_ARRAY: A json row that is an array, written as repeated keys. Save: gml.W_GML_KEY_MANGLED: A key rewritten under sanitizeKeys "mangle". Save: gml.W_GML_NESTED_ELEMENT: A graph, node or edge record nested in a node or edge; kept as json, not read as structure. Import: gml.W_GML_POSITION_COMPONENTS: A position column with more than three components. Save: gml.W_GML_RECORD_BOOLEAN: A json column holds booleans, written 1 / 0. Save: gml.W_GML_RECORD_NULL: A json column holds nulls, omitted. Save: gml.W_GML_RECORD_NUMBER_TYPE: A json column holds numbers; GML records cannot keep int versus real. Save: gml.W_GML_STRING_ID: Node ids, sources or targets are text, where GML expects integers. They are read under theidsoption. Reported once per file. Import: gml.W_GML_UNKNOWN_ENTITY: A named entity no table decodes, or a numeric reference beyond U+10FFFF; kept as written. Import: gml.W_GRAPHML_DESC_DROPPED: A<desc>of a node, an edge or a hyperedge. Import: graphml.W_GRAPHML_EDGEDEFAULT_MISSING: A<graph>without edgedefault; thedefaultDirectedoption applies. Import: graphml.W_GRAPHML_EDGE_GRAPH_DROPPED: A<graph>inside an<edge>(legal GraphML): it and the nodes and edges it holds are dropped. Import: graphml.W_GRAPHML_EDGE_ID_TEXT: A numeric edge id column reads back as string. Save: graphml.W_GRAPHML_GRAPH_ENDPOINT: An edge endpoint that names a nested<graph>, not a node; a node of that id is created. Import: graphml.W_GRAPHML_HIERARCHY_REORDERED: Containment order differs from index order; node indices change after a round trip. Save: graphml.W_GRAPHML_HUB_ID_CLASH: A<node>whose id is that of a hubhyperedges: "star"created; the node is merged into the hub. Import: graphml.W_GRAPHML_HYPEREDGE_DATA_DROPPED: Data of a hyperedge expanded to a star or clique. Import: graphml.W_GRAPHML_HYPEREDGE_SKIPPED: Hyperedges skipped underhyperedges: "skip". Import: graphml.W_GRAPHML_KEY_DECLARED_LATE: A<key>declared after<data>that used it; those values were already reported and dropped. Import: graphml.W_GRAPHML_KEY_DOMAIN: A<data>whose key is declared for another domain. Import: graphml.W_GRAPHML_KEY_DOMAIN_UNSUPPORTED: A key declared for hyperedges, ports or endpoints (never used). Import: graphml.W_GRAPHML_LOCATOR_DROPPED: A<locator>element. Import: graphml.W_GRAPHML_NAMESPACE: The<graphml>root is in a namespace other than GraphML's; it is read as GraphML. Import: graphml.W_GRAPHML_NESTED_GRAPH_DATA: Data of a nested<graph>; only the top-level graph has attributes. Import: graphml.W_GRAPHML_ORIGINAL_ID_IGNORED: Agraphty:originalIdvalue that is not text, or arrives after the node was added (after its nested graph). Import: graphml.W_GRAPHML_PARENT_CYCLE: Nodes whose parent chain never reaches a root are written at the top level. Save: graphml.W_GRAPHML_PARSE_HINT_IGNORED: A GraphMLparse.*attribute (parse.nodeids,parse.order, ...) that graph-io does not act on; the file is read normally. Import: graphml.W_GRAPHML_PORT_DECLARATION:<port>declarations (and their data) are not kept; sourceport / targetport edge attributes are. Import: graphml.W_GRAPHML_YFILES_GRAPHICS_STALE: Ayfiles.*graphics column that no longer matches its yFiles tree: only the tree is written. Save: graphml.W_GRAPHML_YFILES_JSON: YFiles nested XML kept as a JSON tree: structure preserved, not byte-exact. Save: graphml.W_GRAPHML_YFILES_SKIPPED: A yFiles key underyfiles: "skip". Import: graphml.W_GRAPHML_YFILES_VALUE: A yFiles graphics value (a geometry coordinate, a width) that is not a number; it is not mapped. Import: graphml.W_GRAPH_ATTRIBUTES_DROPPED: Graph-level attributes in a format without them. Save: any format.W_GRAPH_COLUMN_AS_METADATA: A graph attribute is written into the file's metadata and reads back insnapshot.meta.extra, not as a graph attribute. Save: json, obo.W_HIERARCHY_DROPPED: A parent / parents column in a format without containment. Save: any format.W_HYPEREDGES_SKIPPED: JGF hyperedges were skipped, becausehyperedgesis "skip" (the default). Pass "star" or "clique" to keep them. Import: json.W_ID_MANGLED: Ids outside the format's charset are rewritten (sanitizeIds "mangle"). Save: any format.W_ID_MERGED: Two different id texts became the same number becauseidsis "number" (for example, "042" and "42"), so their nodes were merged. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.W_ID_RENUMBERED: The format numbers nodes 1..N; ids that are not their 1-based index are kept as labels only. Save: any format.W_ID_TEXT_TYPE: Node ids whose written text reads back as the other type under the importer's id rule. Import: cx2, cx. Save: any format.W_INTEGRAL_F64_AS_I32: A number attribute whose values are all whole numbers reads back as integers, because the format does not record the type. Save: any format.W_ISSUES_SUPPRESSED: More warnings of one code than a report keeps: the first ones are kept and this one warning (the suppressed code as its element) counts the rest. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.W_JSON_BIG_INTEGER: Integer literals beyond 2^53 were read as their exact digits (strings), not as rounded numbers. Import: json.W_JSON_INCONSISTENT: The document contradicts itself: a declared option its edges break (multigraph false with parallel links, graphology's options), a record whose section disagrees with its shape, a JGF inner id other than its key, the two listings of one adjacency edge. Import: json.W_JSON_INDEX_LINKS: IndexLinks "auto" read integer endpoints as array positions although they also name node ids. Import: json.W_JSON_NONSTANDARD_NUMBER: The document uses the bare tokens NaN, Infinity or -Infinity (Python's json writes them), which strict JSON does not allow; read as the numbers. Import: json, cx2, cx.W_JSON_OBOGRAPHS_SUBJ: Obographs: an edge uses the outdatedsubjkey of the OBO Graphs README; it is read assub. Import: json.W_JSON_UNREAD_KEY: A node-link / d3 top-level key the importer does not read (the other of edges / links, an unknown key); it is dropped. Import: json.W_JSON_UNSUPPORTED: A json column in a format without nested values. Save: any format.W_LIST_SEPARATOR: GEXF 1.2 liststring items are separated by|; an item containing one cannot be split back. Save: gexf.W_LIST_UNSUPPORTED: A list column in a format without lists. Save: any format.W_MISSING_SECTION: A section the dialect expects is not there: a node-link document without its nodes or its edges array, an adjacency document without lists for some nodes, or anodesPath/edgesPaththat names nothing. Nothing is skipped: the graph is read without that section (nodes come from the edges, or there are no edges). Import: json.W_MIXED_DIRECTION: The graph has both directed and undirected edges, the format holds one direction per file, andonMixedDirectionis "directed" or "undirected": every edge is written with that direction. Save: any format.W_MULTIPLE_GRAPHS: The file holds several graphs and only the first was read (GraphML and GEXF merge them into one graph instead). It is not added whengraphIndexorgraphNamechose the graph.importAllGraphs()reads every one. Import: json, graphml, gexf, gml, dot, pajek, xgmml, cx, cys.W_MULTI_ASPECT_FRAGMENT: A CX array member holding several aspects ({"nodes": [...], "edges": [...]}); each array-valued key is read as its own fragment. Import: cx2, cx.W_MULTI_EDGES: Parallel edges in a format without them. Save: any format.W_MUTUAL_AS_UNDIRECTED: A mutual pair is written as one undirected edge; the pair reads back undirected, the mark is lost. Save: any format.W_MUTUAL_EXPANDED: A mutual pair is written as two directed edges without the mutual mark. Save: any format.W_NEO4J_ARRAY_DELIMITER: A list item containing the array delimiter, which Neo4j cannot escape. Save: neo4j.W_NEO4J_DECLARED_TYPE_CHANGED: An integer-typed column with non-integral values written as double. Save: neo4j.W_NEO4J_HEADER_OPTION_IGNORED: A header brace option the importer does not apply. Import: neo4j.W_NEO4J_IGNORED_COLUMNS::IGNOREcolumns skipped on import. Save: neo4j.W_NEO4J_MISSING_TYPE: A relationship with an empty :TYPE cell (neo4j-admin requires one); kept without a type. Import: neo4j.W_NEO4J_MULTIPLE_ID_PROPERTIES: Several stored-id properties; one becomes the:IDcolumn. Save: neo4j.W_NEO4J_SECTION_KIND: A file under the nodes option holds a relationship header, or the reverse; read by its header. Import: neo4j.W_NEO4J_UNDIRECTED_AS_DIRECTED: Neo4j relationships are always directed, so the edges of an undirected graph, and the undirected edges of a mixed graph, read back as directed. Save: neo4j.W_NODE_ORDER: The nodes read back in a different order. Save: json, obo.W_NONFINITE_AS_NULL: NaN and the infinities cannot be written; they are written as null and read back unset. Save: any format.W_NUMERIC_IDS_STRINGIFIED: JGF keys its nodes by text, so number ids read back as text, unless you read the file withids: "canonical". Save: json.W_OBOGRAPHS_DATATYPE_DROPPED: Obographs: a property_value's xsd datatype has no place in basicPropertyValues and reads back unset. Save: json.W_OBOGRAPHS_EDGE_COLUMN_AS_META: Obographs: an edge column (or the explicit weights) is written into each edge's meta and reads back inside the meta column. Save: json.W_OBOGRAPHS_ID_CHANGED: Obographs: a node id or relation is written as an IRI the importer's default oboIds "curie" reads back as another id. Save: json.W_OBO_CARDINALITY: A frame has only oneintersection_oforunion_ofclause, where OBO needs at least two. Import: obo.W_OBO_DEPRECATED_SYNTAX: A backslash line continuation (deprecated in 1.4). Import: obo.W_OBO_DEPRECATED_TAG: An OBO 1.0 / 1.2 tag read as its 1.4 meaning (exact_synonym, xref_analog, use_term, typeref, version). Import: obo.W_OBO_DUPLICATE_CLAUSE: Two identical clauses on one frame (parallel edges with one relation and the same qualifiers, a repeated list item) read back as one. Save: obo.W_OBO_EDGE_COLUMN_AS_QUALIFIER: An edge column (or the explicit weights) reads back inside thequalifierscolumn. Save: obo.W_OBO_EDGE_ORDER: Edges are written in the frame of their source node, so they read back grouped by source, in node order. Save: obo.W_OBO_FORMAT_VERSION: The header has noformat-version(OBO 1.2 and 1.4 require one), or names a version other than 1.0, 1.2 or 1.4. The file is read accepting the tags of every version. Import: obo.W_OBO_HEADER_NOT_APPLIED: A header clause whose meaning graph-io does not apply (import,id-mapping, thetreat-xrefsmacros,owl-axioms); it is kept insnapshot.meta.extra.obo.header. Import: obo.W_OBO_ID_KIND_CLASH: One id for a Term and a Typedef (or an Instance); the Term (the first node frame) is the node. Import: obo.W_OBO_ID_NOT_FIRST: The frame'sidis not its first clause; it is used anyway. Import: obo.W_OBO_LINE_END: A carriage return or form feed in a text cannot be written; it is written as a line feed. Save: obo.W_OBO_OBSOLETE_DROPPED: Obsolete terms and their edges left out under obsolete: "drop". Import: obo.W_OBO_OBSOLETION: An obsolete term with is_a / relationship, or replaced_by / consider on a term that is not obsolete. Import: obo.W_OBO_ONTOLOGY_NAME: The graph name is not an ontology id; the headerontologyis written with_in place of the other characters. Save: obo.W_OBO_RELATION_RENAMED: A relation that is not an OBO id (empty, or holding a space,!,{or}) is written with_in place of those characters. Save: obo.W_OBO_SYNONYM_SCOPE: A synonym without a scope in a file that does not say 1.2, or with a scope that is not one of the four. Import: obo.W_OBO_SYNTAX: A line without a colon, an unterminated quote, a def without its xref list, a qualifier block that does not parse, an unescaped brace. Import: obo.W_OBO_UNDECLARED: A relation, subset or synonym type that nothing declares. Import: obo.W_OBO_UNDIRECTED_AS_DIRECTED: Every edge is written from its source to its target, so an undirected graph reads back as directed. Save: obo.W_OPEN_INTERVAL: An open-interval column in a format without open intervals. Save: any format.W_OPTIONS_DROPPED: Declared options in a format without enumerations. Save: any format.W_OPTIONS_GAINED: A text attribute stored as a dictionary, without a declared list of allowed values, reads back with its distinct values as that list. Save: any format.W_OPTION_IGNORED: You set an option this format does not use; it had no effect. The message names the option. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.W_PAJEK_COORD_DIMS: Vertex lines mix two and three coordinates. Import: pajek.W_PAJEK_FIRST_MODE_DROPPED: The graph's two-mode vertex count (meta.extra.pajek.firstMode) is not between 0 and the number of nodes, so the file is written as a one-mode network. Save: pajek.W_PAJEK_HEADER_EXTRA: A section header has extra words Pajek does not define; they are ignored. Import: pajek.W_PAJEK_KEY_DROPPED: A column whose name cannot be a parameter key (whitespace, a quote, numeric, a shape keyword); skipped. Save: pajek.W_PAJEK_LABEL_AS_TEXT: The node label attribute holds numbers or other values that are not text; they are written as text and read back as text. Save: pajek.W_PAJEK_LABEL_GAINED: A vertex line with coordinates, a shape or parameters needs a label: the id text is written and reads back as a label. Save: pajek.W_PAJEK_LABEL_MERGED: Two vertices share a label under nodeIdFrom "label" and became one node. Import: pajek.W_PAJEK_MATRIX_EXTRA:*Matrixrows longer than the column count; the extra values are ignored. Import: pajek.W_PAJEK_NEGATIVE_LIST_ENTRY: A negative vertex number in an adjacency list, read as its absolute value. Import: pajek.W_PAJEK_NONFINITE_AS_TEXT: NaN or an infinity is written as the text Infinity or NaN, which reads back as text. Save: pajek.W_PAJEK_NO_LINES: The file declares vertices but no line section. Import: pajek.W_PAJEK_NUMERIC_LABEL: A bare non-integer number read as a vertex label before two coordinates (1 0.1 0.2 0.3); it may be an x y z line without a label. Import: pajek.W_PAJEK_ORIGINAL_ID_MERGED: Two vertices carry the samegraphty_originalIdunder restoreMangledIds and became one node. Import: pajek.W_PAJEK_ORIGINAL_ID_UNRESTORED: A vertex line'sgraphty_originalIdcame after a later vertex's line had created it under its number. Import: pajek.W_PAJEK_POSITION_STRIDE: A position with other than 2 or 3 coordinates is not written. Save: pajek.W_PAJEK_QUOTE_IN_TOKEN: A double quote inside a token (a CSV-style doubled quote, a quote mid-word): removed and the parts joined. Import: pajek.W_PAJEK_REFERENCE_RANGE: A character reference beyond U+10FFFF in a label; kept as written. Import: pajek.W_PAJEK_RELATION_RENAMED: A relation number given a second name by a later*Arcs :k "name"header. Import: pajek.W_PAJEK_SHAPE_AS_PARAMETER: Ashapeattribute whose value is not one of Pajek's shape names is written as a parameter, and reads back as a plain text attribute. Save: pajek.W_PAJEK_TWO_MODE_LINE: A line of a two-mode network whose endpoints are both in one mode. Import: pajek.W_PAJEK_UNSUPPORTED_SECTION: A project-file section (*Events,*Permutation, ...) the importer does not read; its lines are skipped. Import: pajek.W_PAJEK_VERTEX_COUNT: Fewer vertex lines than*Verticesdeclares, which the Pajek manual allows (vertices without a line have no label). Import: pajek.W_PAJEK_ZERO_BASED: Vertex numbering starts at 0 rather than 1, found byfirstVertex: "auto"(passingfirstVertex: 0says so and gives no warning). Import: pajek.W_PARENTS_DROPPED: A parents (multi-parent) column in a format with single containment only. Save: any format.W_POSITIONAL_NODES: The nodes have no id key at all; array positions became the ids. Import: json.W_POSITIONS_DROPPED: A position column in a format without positions. Save: any format.W_POSITION_Z_DROPPED: Cytoscape positions are 2D; non-zero z values are dropped. Save: json.W_PRECISION: An integer beyond 2^53 was stored as the nearest 64-bit float; passlong: "string"to keep every digit. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, cys.W_RELATION_ASSUMED: An ontology exporter writes an edge without a relation asis_a(or the relation the caller chose). Save: json, obo.W_RESERVED_KEY: A column named like a reserved key of the dialect (id, source, target, ...) is skipped. Save: json.W_ROLE_ASSUMED: An attribute without a role is written where the format keeps a role (for example, anamecolumn as the label), and reads back with that role. Save: any format.W_ROLE_DROPPED: An attribute with a role the format has no place for is written as a plain attribute; the role is lost. Save: any format.W_ROLE_SHAPE: A role column of a shape GEXF cannot map (a stringstart, a 2-component color); written as a plain attribute. Save: gexf.W_ROLE_TAKEN: You read into a graph builder that already has an id, label or position attribute, so this file's one is kept as a plain attribute. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.W_SELF_LOOPS: Self-loops in a format without them. Save: any format.W_SELF_LOOPS_DROPPED: Self-loops were removed by theselfLoops: "drop"option. Recorded once by importGraph() with the number removed.W_SINGLE_OBJECT_ASPECT: A CX aspect, an array of elements, written as one object ({"nodes": {"@id": 1}}); read as one element. Import: cx2, cx.W_SINK_OPTION: You read into your own graph builder, which was created with a differentaddMissingNodes,duplicateEdges,selfLoopsorweightDtypethan the option you passed; the builder's setting applies. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.W_SNIFF_FAILED: Registered importer whose sniff() threw while the format was being chosen; that importer was treated as not recognizing the input (a defect in that importer).W_SPELLS_DROPPED: A spells column in a format without spells. Save: any format.W_STATUS_WARNING: The producer marked the document as successful but attached an error text. Import: cx2, cx.W_STORAGE_CLASS_CHANGED: A text attribute reads back as a dictionary attribute, or the reverse, because the importer chooses by how often its values repeat. The values are the same. Save: any format.W_STRAY_TEXT: Text where the format allows only elements was ignored. Import: graphml, gexf, xgmml, cys.W_STYLES_NOT_IMPORTED: The file's style rules (default styles, mappings, visual properties) are not applied to the graph. Reported once per import; the message names what was not applied. Import: cx2, cx, cys.W_TEMPORAL_DROPPED: A start / end / timestamp column in a format without temporal support. Save: any format.W_TEMPORAL_TABLE_SHAPE: A temporal extension table without the element / start / end / value columns. Save: gexf.W_TEMPORAL_TEXT_DROPPED: A<column>.textcompanion the format cannot carry. Save: any format.W_TEXT_INFERRED: A text value that reads back as a number or a boolean, because the format does not record that it was text (the text "42" reads back as the number 42). Save: any format.W_TIMESTAMP_AS_INTERVAL: GEXF 1.2 has no timestamps; a timestamp becomes a closed interval [t, t]. Save: gexf.W_TYPEDEF_NODES: An ontology exporter writes Typedef (property) nodes; they read back as nodes only under the importer'stypedefs: "nodes". Save: json, obo.W_UNKNOWN_ATTR_TYPE: The declared type is not one the format defines; the column is kept as string. Import: graphml, gexf, neo4j, xgmml, cx2, cx, cys.W_UNKNOWN_ELEMENT: An element the format does not define at that place was skipped. Import: json, graphml, gexf, xgmml, cx2, cx, obo, cys.W_UNKNOWN_ENCODING: The file declares an encoding the platform's TextDecoder does not know; the declaration is ignored. Import: json, graphml, gexf, csv, gml, dot, pajek, neo4j, xgmml, cx2, cx, obo, cys.W_UNKNOWN_OPTION: An option name that no format and no load or save function takes, most often a misspelling (delimeter). The option has no effect. A load records it as a warning, andcheckExport()returns it as a note. Reported only while every registered format lists its options, as the built-in formats do.W_UNKNOWN_XML_ATTRIBUTE: An XML attribute the format does not define (or does not keep) on that element; it is not kept. Import: graphml, gexf.W_VALUE_UNWRITABLE: A cell, default or option the declared type cannot express (skipped). Save: gexf.W_VIZ_DROPPED: Visual columns in a format without them. Save: any format.W_WEIGHTS_DROPPED: The graph has edge weights and the file does not keep them: every edge reads back with the default weight 1. Save: any format.W_WEIGHT_KEY_CLASH: An attribute without the weight role is named like the attribute graph-io reads weights from (for example,weight), so it reads back as the edge weight. Save: any format.W_WEIGHT_NOT_FOUND: TheweightFromoption names an attribute no edge has a value for, so the graph has no weights. The usual cause is one options object shared between formats: GML and Pajek keep their weights invalue, notweight. Recorded once by importGraph().W_WIDENED: An attribute's type was widened because a later value did not fit: an integer above 2^31 in an integer column, or two declared types for one attribute. Import: gml, xgmml, cx, cys.W_WIDENING_UNSUPPORTED: Your graph builder cannot change an attribute's type after its first value, so a text column keeps the type of its first values. Import: csv, dot, pajek.W_XGMML_AMPERSAND_REPAIRED: A bare&read as&under repairBareAmpersands. Import: xgmml, cys.W_XGMML_BACKSLASH_ESCAPE: Strings holding a literal backslash-n or backslash-t read back as newline / tab (Cytoscape's escapes). Save: xgmml.W_XGMML_BAD_ATT: A malformed<att>: a list with a value, a scalar with child atts, an att with no name. Import: xgmml, cys.W_XGMML_BAD_DIRECTED: Adirectedorcy:directedvalue other than 0 / 1. Import: xgmml, cys.W_XGMML_CROSS_FILE_REFERENCE: A pointer into another file (file.xgmml#id); kept as text. Import: xgmml, cys.W_XGMML_DOCUMENT_VERSION: AdocumentVersionthat does not parse; the dialect is chosen from the content. Import: xgmml, cys.W_XGMML_EDGE_ID_TEXT: Edge ids that are not text are written as text and read back as text. Save: xgmml.W_XGMML_EDGE_NESTED_GRAPH: A graph nested in an edge's att; there is no model for it. Import: xgmml, cys.W_XGMML_EMPTY_LIST_TYPE: An empty list whose element type nothing states; a list of strings is assumed. Import: xgmml, cys.W_XGMML_GROUP_DUPLICATE_EDGE: Cytoscape 2.x writes each edge of a group a second time, inside the group. The repeats are dropped, so every edge is read once; nothing is lost. Import: xgmml, cys.W_XGMML_ID_AND_HREF: A node or edge with both an id and anxlink:href; it is read as the reference. Import: xgmml, cys.W_XGMML_ID_FROM_LABEL: A node without an id; its label is used as the id. Import: xgmml, cys.W_XGMML_INTERACTION_FROM_LABEL: Edge labels shapeda (i) bread back with aninteractioncolumn (Cytoscape's label alias). Save: xgmml.W_XGMML_JSON_AS_STRING: A json or nested-list column written as a string att. Save: xgmml.W_XGMML_LABEL_ALIAS: Endpoints resolved through Cytoscape's"a (pp) b"label aliases; interactions filled from labels. Import: xgmml, cys.W_XGMML_NO_NAMESPACE: A root<graph>with neither the XGMML namespace nor an XGMML DOCTYPE. Import: xgmml, cys.W_XGMML_PARENT_CYCLE: Nodes whose parent chain never reaches a root are written at the top level. Save: xgmml.W_XGMML_POSITION: A position that cannot be written as it is: another shape, a non-finite coordinate, a z read back in the z column. Save: xgmml.W_XGMML_RECORD_LIST: An attribute holds a structure a single column cannot (a list of records, a list of lists, a Cytoscape 2.x map or XML from another tool). Its value is kept as a JSON value, which a save as XGMML writes back. Import: xgmml, cys.W_XGMML_ROOT_ONLY_ELEMENTS: Some nodes or edges of a Cytoscape session belong to none of its networks (Cytoscape keeps group meta-edges and the members of collapsed groups this way). They are not read; the message counts them. Import: xgmml, cys.W_XGMML_SURROGATE_PAIRED: Two surrogate character references joined under pairSurrogateReferences. Import: xgmml, cys.W_XGMML_WIDENED_TYPE: An attribute type Cytoscape does not have is written as a wider one (a 32-bit float as Double, a large unsigned integer as Long, a byte as Integer, a dictionary as String). Save: xgmml.
Shared loss codes ​
Any format's checkExport() can return these, when the graph has something the format's capabilities do not cover: E_ID_CHARSET, E_ID_TEXT_COLLISION, E_MIXED_DIRECTION, E_XML_ILLEGAL_CHAR, W_COLUMN_DROPPED, W_COLUMN_NAME_CHANGED, W_COMPONENTS_FLATTENED, W_DEFAULT_DROPPED, W_DTYPE_UNSUPPORTED, W_DYNAMIC_VALUES_DROPPED, W_EDGE_IDS_DROPPED, W_EDGE_IDS_GENERATED, W_EMPTY_COLUMN_DROPPED, W_EXTENSION_TABLE_DROPPED, W_GRAPH_ATTRIBUTES_DROPPED, W_HIERARCHY_DROPPED, W_ID_MANGLED, W_ID_RENUMBERED, W_ID_TEXT_TYPE, W_INTEGRAL_F64_AS_I32, W_JSON_UNSUPPORTED, W_LIST_UNSUPPORTED, W_MIXED_DIRECTION, W_MULTI_EDGES, W_MUTUAL_AS_UNDIRECTED, W_MUTUAL_EXPANDED, W_NONFINITE_AS_NULL, W_OPEN_INTERVAL, W_OPTIONS_DROPPED, W_OPTIONS_GAINED, W_PARENTS_DROPPED, W_POSITIONS_DROPPED, W_ROLE_ASSUMED, W_ROLE_DROPPED, W_SELF_LOOPS, W_SPELLS_DROPPED, W_STORAGE_CLASS_CHANGED, W_TEMPORAL_DROPPED, W_TEMPORAL_TEXT_DROPPED, W_TEXT_INFERRED, W_VIZ_DROPPED, W_WEIGHTS_DROPPED, W_WEIGHT_KEY_CLASH.