- Enhancements
- Added
set_name()
,remove_node_attribute()
,remove_edge_attribute
,get_opaque_aspect()
, andset_opaque_aspect()
toCX2Network
class.
- Added
- Bug fixes
- Fixed bug in type conversion. Datatypes in shorter form such as 'str', 'int' etc. are accepted.
- Enhancements
- Added
add_network_attribute()
,add_node_attribute()
,add_edge_attribute()
,lookup_node_id_by_name()
toCX2Network
class. - Added new parameters to
get_cx2network
inPandasDataFrameToCX2NetworkFactory
to make it easier to convert Pandas Dataframe. - Added
get_nodelist_table()
toCX2NetworkPandasDataFrameFactory
class.
- Added
- Enhancements
- Added
CX2NetworkXFactory
undercx2.py
module to convertCX2Network
object to NetworkX Graph - Added
NetworkXToCX2NetworkFactory
undercx2.py
module to convert NetworkX Graph toCX2Network
object - Added
PandasDataFrameToCX2NetworkFactory
undercx2.py
module to convert Pandas DataFrame toCX2Network
object - Added
CX2NetworkPandasDataFrameFactory
undercx2.py
module to convertCX2Network
object to Pandas DataFrame
- Added
- Enhancements
- Added
CX2Network
class undercx2.py
module to represent networks CX2 format - Added
RawCX2NetworkFactory
class undercx2.py
to createCX2Network
objects - Added
NoStyleCXToCX2NetworkFactory
class undercx2.py
to convertNiceCXNetwork
toCX2Network
- Added
- Bug fixes
- Fixed SyntaxWarnings Issue #92
- Bug fixes
- Fixed bug where
ndex2.create_nice_cx_from_networkx()
fails with numpy version 1.24 Issue #96 - Updated post and put calls in
client.py
to only pass credentials if they are set. This change is to accommodate changes in upcoming version 3 of requests library
- Fixed bug where
- Enhancements
- Added skip_version_check parameter to
Ndex2()
constructor to let caller optionally bypass NDEx server call to see if v2 endpoint is supported - Added the following CX2 methods to
Ndex2()
client:get_network_as_cx2_stream()
,get_network_aspect_as_cx2_stream()
,save_cx2_stream_as_new_network()
,save_new_cx2_network()
, andupdate_cx2_network()
Issue #87 - In
Ndex2()
client, methods that raiseNDExError
exceptions from calls to NDEx server will now raise the more specificNDExUnauthorizedError
subclass when the response from NDEx server is a 401 aka unauthorized. - Added new parameters dataconverter and include_attributes to
NiceCXNetwork.to_pandas_dataframe()
. dataconverter parameter specifies data type conversion and include_attributes parameter lets caller specify whether all node/edge attributes are added to the resulting DataFrame - Added new parameter to
ndex2.create_nice_cx_from_server()
named ndex_client that lets caller specifyNDex2()
client object to use. - Passing
None
for the server positional parameter intondex2.create_nice_cx_from_server(None, uuid='XXXX')
will default to the production NDEx server
- Added skip_version_check parameter to
- Bug fixes
- Fixed bug where creation of NiceCXNetwork from networkx via
ndex2.create_nice_cx_from_networkx()
incorrectly set the data type for boolean values to integer. Issue #83 - Fixed bug where converting NiceCXNetwork to networkx and back does not handle name attribute correctly. Issue #84
- Fixed bug where @context was lost if it was set as aspect in CX format and loaded into NiceCXNetwork object. Issue #88
- Fixed bug where creation of NiceCXNetwork from networkx via
ndex2.create_nice_cx_from_networkx()
incorrectly set the data type for empty list to string. Issue #90 - Fixed bug where Y coordinates of nodes would be inverted when converting to/from networkx from NiceCXNetwork. This was due to differences in coordinate systems between networkx and NiceCXNetwork
- DefaultNetworkXFactory networkx converter (used by
NiceCXNetwork.to_networkx(mode='default')
) no longer converts edge attributes that are of type list into strings delimited by commas - Fixed bug where
ndex2.create_nice_cx_from_server()
failed on networks with provenanceHistory aspect
- Fixed bug where creation of NiceCXNetwork from networkx via
- Removals
- Removed unused test methods from internal class NiceCXBuilder:
load_aspect()
,stream_aspect()
,stream_aspect_raw()
- Removed the following deprecated methods from NiceCXNetwork:
add_node()
,add_edge()
,get_edge_attribute_object()
,get_node_attribute_objects()
,get_edge_attribute_objects()
,add_metadata()
,get_provenance()
,set_provenance()
,__merge_node_attributes()
,create_from_pandas()
,create_from_networkx()
,create_from_server()
,upload_new_network_stream()
, &create_from_cx()
- Removed unused test methods from internal class NiceCXBuilder:
- Added offset and limit parameters to Ndex2.get_network_ids_for_user() to enable retrieval of all networks for a user. Issue #78
- Switched NiceCXNetwork.upload_to() to named arguments and added client parameter. Issue #80
- Switched NiceCXNetwork.update_to() to named arguments and added client parameter. Issue #81
- Fixed documentation NiceCXNetwork.update_to() to correctly state method returns empty string upon success. Issue #82
- Fixed bug in NiceCXNetwork.set_opaque_aspect() where passing None in the aspect_elements parameter raised an error instead of removing the aspect
- Added Ndex2.get_user_by_id() method to get user information by NDEx user Id.
- Added Ndex2.get_id_for_user() method to get NDEx user Id by username.
- Added Ndex2.get_networksets_for_user_id() to get Network Sets for a given user Id. Issue #61
- Improved documentation by adding intersphinx to provide links to python documentation for python objects.
- Fixed bug where NiceCXNetwork.to_networkx() fails with ValueError when installed networkx version has X.Y.Z format (example: 2.5.1) Issue #79
- Fixed bug where NiceCXNetwork.create_node() and .create_edge() overwrote existing nodes/edges. Issue #60
- Fixed bug where enum34 package would be unnecessarily installed on versions of Python 3.4 and newer. Issue #76
- Improved documentation for Ndex2.set_network_properties() method. Issue #77
- Added MANIFEST.in file to include README.rst, HISTORY.rst, and LICENSE.txt files as well as documentation and tests so python setup.py install will work properly on distribution of this client on PyPI. Thanks to Ben G. for catching this. Issue #62
- Minor updates to README.rst
- Fixed bug where if server version is not 2.0 exactly then Ndex2() object incorrectly falls back to version of 1.3 of REST calls Issue #40
- Fixed bug in NiceCXNetwork.add_network_attribute() method where type not properly reset when adding duplicate attribute Issue #50
- Added delete_networksets() method to Ndex2 client to allow deletion of networksets Issue #59
- Verify consistent conversion of CX for networkx 1.11 and 2.0+ Issue #30
- NiceCXNetwork.get_nodes(), NiceCXNetwork.get_edges(), NiceCXNetwork.get_metadata() needs to make correct iterator call in Python 2 Issue #44
- Add NiceCXNetwork.get_network_attribute_names() function enhancement Issue #45
- NiceCXNetwork.create_edge() fails to correctly create edge when node dict passed in Issue #46
- Add method to ndex2 python client to apply style from one NiceCXNetwork to another NiceCXNetwork Issue #43
- In NiceCXNetwork class ability to add to User-Agent for calls to NDEx service Issue #36
- Methods in ndex2/client.py should raise an NDExError for invalid credentials Issue #39
- Add timeout flag to all web request calls Issue #33
- Update User-Agent to reflect actual version of software Issue #35
- NiceCXNetwork.set_node_attribute() incorrectly handles duplicate attributes Issue #41
- NiceCXNetwork.set_node_attribute() fails if node object passed to it Issue #42
- Passing None to user_agent parameterin Ndex2() constructor raises TypeError Issue #34
- Ndex2() constructor does not properly handle invalid json from server Issue #28
- Eliminate circular import between ndex2 and ndex2cx/nice_cx_builder.py Issue #31
- Replace print statements with logging calls in ndex2/client.py Issue #32
- Fixed bug where logs directory is created within the package installation directory. Issue #26