Snap.py 6.0 Release Notes December 2020 Snap.py is a Python interface for SNAP (Stanford Network Analysis Platform). SNAP is a general purpose, high performance system for analysis and manipulation of large networks. SNAP is written in C++ and optimized for maximum performance and compact graph representation. It easily scales to massive networks with hundreds of millions of nodes, and billions of edges. Snap.py provides performance benefits of SNAP, combined with flexibility of Python. Most of the SNAP functionality is available via Snap.py in Python. Snap.py 6.0 is a major release with a large number of new features, most notably a significantly improved way to call Snap.py functions in Python, a NetworkX compatibility layer, standard Python functions to handle SNAP vector and hash types, new functions for egonets and graph union, and a completely revised package building infrastructure with a better support for various versions of Python. These enhancements are backward compatible, so existing Snap.py based programs should continue to work. A high-level description of changes in Snap.py releases is provided below. Release 6.0.0, Dec 28, 2020 - implemented pylayer, a significantly improved way to call SNAP C++ functions - standalone functions are available as class methods - built-in Python classes (lists, dictionaries) can be provided as parameters - results are available as return values rather than as reference parameters - support for optional parameters has been enhanced - implemented SnapX, a NetworkX compatible graph manipulation layer, as a module within Snap.py - implemented standard Python interface functions for SNAP vector and hash types to be compatible with Python lists and dictionaries - implemented new functions to calculate egonets, GetEgonet, GetEgonetHop, GetInEgonetHop, GetOutEgonetHop, GetInEgonetSub - implemented new functions to perform graph union, GetGraphUnion, GetGraphUnionAttr - added Dockerfile to containerize a release - replaced setup.py with a completely new implementation - added scripts for building wheel packages on macOS, Linux and Windows - performed a large number of updates in Makefiles - performed a major rewrite and extensions of the Snap.py documentation - expanded functionality tests - added a program to test the speed of various methods for writing and reading a graph - fixed formatting problems in creating the documentation with Sphinx - added hellotest, a simple module to test the building of Python C/C++ Release 5.0.0, Aug 30, 2019 - implemented support for py3 - implemented wheel packages and pip for py2 and py3 - updated tests and documentation for py3 - updated other python code for the py3 print function - upgraded build platforms to Ubuntu 18.04, macOS 14.10, Windows 10 - upgraded Visual Studio files to VS2019 - updated install_name_tool to the version from High Sierra 10.13 - updated setup.py from distutils to setuptools - improved the tests for generated files, such as gnuplot files - removed the need for Unix dependent commands grep and rm in tests - commented out tests for PNG files, since these differ on various platforms - implemented various other improvements in tests - improved the update_dynlib.sh script - improved the package build process - added a license text - added troubleshooting notes - improved documentation on graph creation - updated conf.py for the next release Release 4.1.0, Jul 27, 2018 - updated C++ codebase to SNAP 4.1 - implemented GetSubGraphRenumber() - implemented GetLen2Paths() - implemented GetEigVec() - implemented GetSngVec() - implemented GetBfsEffDiamAll() - implemented GetClustCfAll() - implemented GetTriadsAll() - implemented GetNodeTriadsAll() - improved support for node2vec - expanded the set of supported node iterator methods - defined TFltVFltV - added test programs for gnuplot and Graphviz - improved documentation for GetEdgesInOut() - improved documentation for GetSubTreeSz() - improved documentation for IsTree() - improved documentation for GetMxNId() - improved documentation for CommunityCNM() - improved documentation for CommunityCNM() - improved documentation for GetRndNId() - performed other minor updates in the documentation Release 4.0.0, Jul 28, 2017 - updated C++ codebase to SNAP 4.0 - added a test for TTable - minor updates in the documentation Release 3.0.2, Oct 7, 2016 - fixed a missing ToNetwork() function - fixed a few issues with documentation - further improved Anaconda Python handling in setup.py Release 3.0.1, Sep 28, 2016 - improved setup.py for installations with Anaconda Python Release 3.0.0, Sep 14, 2016 - this is a major release with many new features - version number synced up with SNAP - updated C++ codebase to SNAP 3.0 - added support for new classes: multimodal networks TMMNet, TModeNet, TCrossNet, TDirNet, TUndirNet, TNGraphMP, TNEANetMP - included support for GetBetweennessCentr(), GetClosenessCentr(), GetFarnessCentr() on TUNGraph(), TNGraph(), TNEANet() - implemented multithreaded execution of many operations on Linux and Mac OS X - extended test suite in snap-test.py - added a batch script for testing on Windows - fixed attributes in TNEANet and added a test - fixed edge iterators and added a test - fixed edge deletion in TNEANet and added a test - fixed LoadConnListStr() and added a test - fixed LoadEdgeListStr() and added a test - fixed GetBfsTree() and added a test - fixed GetBetweennessCentr() and added a test - fixed GetClosenessCentr() and added a test - fixed GetFarnessCentr() and added a test - fixed THashKeyDatI and added a test - added a test for vector operations - extended Makefile with support for new classes: multimodal networks TMMNet, TModeNet, TCrossNet, TNGraphMP, TNEANetMP - added documentation for multimodal networks TMMNet - added documentation for tables TTable - added documentation for conversion of tables to graphs - added documentation for sparse attributes - added documentation for TUndirNet, TDirNet - added documentation for sparse attributes for TNEANet - fixed documentation for LoadConnListStr(), LoadEdgeListStr() - added GetDat() to documentation on THash - fixed a minor typo in documentation for PlotSccDistr() Release 1.2, May 12, 2015 - updated C++ codebase to SNAP 2.4 - implemented and documented IsAttrDeletedN(), IsIntAttrDeletedN(), IsFltAttrDeletedN(), IsStrAttrDeletedN(), IsAttrDeletedE(), IsIntAttrDeletedE(), IsFltAttrDeletedE(), IsStrAttrDeletedE(), GetNIdV(), GetEIdV(), GetRndEI() - implemented GetIntAttrIndDatE(), GetFtlAttrIndDatE(), GetStrAttrIndDatE() - implemented and documented GetAttrIndN(), GetAttrIndE(), IntAttrNameNI(), FltAttrNameNI(), StrAttrNameNI(), IntAttrValueNI(), FltAttrValueNI(), StrAttrValueNI(), GetIntAttrIndDatN(), GetFltAttrIndDatN(), GetStrAttrIndDatN() - expanded the code for the TNEAnet.GetEI() - changed THashSet iterator to use THashSetKeyI - fixed redefinition of Python built-in len() function - fixed error with THashSet iterator - fixed the code and the documentation for GetEI() in graphs and networks - improved tneanet.py, fixed a few typos - added tests for empty strings and nested iterators over TIntSet() - added programs for the bug reports from CS224W - added a bug program for GenRndPowerLaw() - added a code that reproduces problem with LoadEdgeListStr() - configured short compilation - updated documentation and test program for AttrNameNI(), AttrValueNI(), AttrNameEI(), AttrValueEI() - documented GetIntAttrIndDatN(), GetFtlAttrIndDatN(), GetStrAttrIndDatN(), IntAttrNameEI(), FltAttrNameEI(), StrAttrNameEI(), IntAttrValueEI(), FltAttrValueEI(), StrAttrValueEI() - updated typo in the documentation for GetNodeWcc() - improved documentation for GetNodesAtHop() and GetNodesAtHops() - fixed typos in documentation for GetMxSccSz - fixed the documentation about the THashKeyDatI Next() iterator - fixed errors in reference manual for GetOutDegCnt and GetInDegCnt - fixed an small bug in the sample code for GetMxSccSz in the reference manual - split documentation on node and edge attribute methods for TNEANet - fixed documentation for TNEANetEdgeI.GetId() - improved the documentation and a test for the set iterator - improved documentation on PrintInfo() Release 1.1, Jun 16, 2014 - updated C++ codebase to SNAP 2.3 - added support for installation with Anaconda or Homebrew python on Mac - added StackOverflow example - added AGM related functionality for community detection - added clique percolation method for community detection - added a test program and data for clique percolation method for community detection - added OpenMP support - added more comprehensive tests - updated TVec and THash samples - added README.txt - updated Makefile for tests - improved top level Makefile Release 1.0, Mar 20, 2014 - initial public release of Snap.py - included C++ codebase SNAP 2.2