Repository: stephenhky/GraphFlow (language: python)

Issue:
release 0.6.1



Discussion / hints:

Fix patch:
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 6e01152..f10e182 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -56,6 +56,11 @@ jobs:
     docker:
       - image: cimg/python:3.11
 
+  py312:
+    <<: *shared
+    docker:
+      - image: cimg/python:3.12
+
 workflows:
   version: 2
   build:
@@ -64,3 +69,4 @@ workflows:
       - py39
       - py310
       - py311
+      - py312
diff --git a/LICENSE b/LICENSE
index f5d387c..ea669ff 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2018 Kwan-Yuet Ho
+Copyright (c) 2018 Kwan Yuet Stephen Ho
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/doc/requirements.txt b/doc/requirements.txt
index 3c71a00..6cf5b5e 100644
--- a/doc/requirements.txt
+++ b/doc/requirements.txt
@@ -1,4 +1,4 @@
 Cython==3.0.10
-numpy==1.26.4
+numpy==2.0.1
 networkx==3.3
 sparse==0.15.4
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 6030bd0..f9c59a7 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -49,17 +49,17 @@
 
 # General information about the project.
 project = u'GraphFlow'
-copyright = u'2018, Kwan-Yuet Ho'
-author = u'Kwan-Yuet Ho'
+copyright = u'2018, Kwan Yuet Stephen Ho'
+author = u'Kwan Yuet Stephen Ho'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
 # built documents.
 #
 # The short X.Y version.
-version = u'0.5'
+version = u'0.6'
 # The full version, including alpha/beta/rc tags.
-release = u'0.5.1'
+release = u'0.6.1'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/doc/source/intro.rst b/doc/source/intro.rst
index a61f085..37670f6 100644
--- a/doc/source/intro.rst
+++ b/doc/source/intro.rst
@@ -8,7 +8,7 @@ This Python package provides numerical routines for graph flow analysis, particu
 * Non-linear System of Resistance
 * HITS (Hyperlink-Induced Topic Search)
 
-Author: Kwan-Yuet Ho (LinkedIn_, ResearchGate_, Twitter_)
+Author: Kwan Yuet Stephen Ho (LinkedIn_, ResearchGate_, Twitter_)
 
 Home: :doc:`index`
 
diff --git a/setup.py b/setup.py
index 7dfd540..423da99 100644
--- a/setup.py
+++ b/setup.py
@@ -22,7 +22,7 @@ def install_requirements():
 
 
 setup(name='graphflow',
-      version="0.6.0",
+      version="0.6.1a1",
       description="Algorithms for Graph Flow Analysis",
       long_description="Numerical routines for analyzing data represented by graphs",
       classifiers=[
@@ -33,13 +33,14 @@ def install_requirements():
           "Programming Language :: Python :: 3.9",
           "Programming Language :: Python :: 3.10",
           "Programming Language :: Python :: 3.11",
+          "Programming Language :: Python :: 3.12",
           "Programming Language :: Cython",
           "Programming Language :: C",
           "License :: OSI Approved :: MIT License",
       ],
       keywords="Algorithms for Graph Flow Analysis",
       url="https://github.com/stephenhky/GraphFlow",
-      author="Kwan-Yuet Ho",
+      author="Kwan Yuet Stephen Ho",
       author_email="stephenhky@yahoo.com.hk",
       license='MIT',
       packages=['graphflow',


Test patch:
diff --git a/test/test_hits.py b/test/test_hits.py
index 311fdea..4496c14 100644
--- a/test/test_hits.py
+++ b/test/test_hits.py
@@ -21,12 +21,12 @@ def testFork(self):
 
         hubdict, authdict = graphflow.hits.CalculateHITS(forkgr)
 
-        self.assertAlmostEquals(hubdict['a'], np.sqrt(0.5))
-        self.assertAlmostEquals(hubdict['b'], 0.0)
-        self.assertAlmostEquals(hubdict['c'], np.sqrt(0.5))
-        self.assertAlmostEquals(authdict['a'], 0.0)
-        self.assertAlmostEquals(authdict['b'], 1.0)
-        self.assertAlmostEquals(authdict['c'], 0.0)
+        self.assertAlmostEqual(hubdict['a'], np.sqrt(0.5))
+        self.assertAlmostEqual(hubdict['b'], 0.0)
+        self.assertAlmostEqual(hubdict['c'], np.sqrt(0.5))
+        self.assertAlmostEqual(authdict['a'], 0.0)
+        self.assertAlmostEqual(authdict['b'], 1.0)
+        self.assertAlmostEqual(authdict['c'], 0.0)
 
 
 if __name__ == '__main__':
diff --git a/test/test_simplecircuits.py b/test/test_simplecircuits.py
index d3c8956..07e1a41 100644
--- a/test/test_simplecircuits.py
+++ b/test/test_simplecircuits.py
@@ -15,8 +15,8 @@ def tearDown(self):
     def test_simplecircuits(self):
         circuit = SocialNetworkSimVoltage(nodes=['a', 'b'],
                                           edges=[('a', 'b', 13.2)])
-        self.assertAlmostEquals(circuit.getResistance('a', 'b'), 13.2)
-        self.assertAlmostEquals(circuit.getResistance('b', 'a'), np.inf)
+        self.assertAlmostEqual(circuit.getResistance('a', 'b'), 13.2)
+        self.assertAlmostEqual(circuit.getResistance('b', 'a'), np.inf)
 
     def test_parallelcircuits(self):
         circuit = SocialNetworkSimVoltage(nodes=['a', 'b', 'c'],
@@ -24,9 +24,9 @@ def test_parallelcircuits(self):
                                                  ('b', 'c', 10.0),
                                                  ('a', 'c', 20.0)])
         # self.assertAlmostEquals(circuit.getResistance('a', 'b'), 10.0)
-        self.assertAlmostEquals(circuit.getResistance('b', 'c'), 10.0)
-        self.assertAlmostEquals(circuit.getResistance('a', 'c'), 10.0)
-        self.assertAlmostEquals(circuit.getResistance('c', 'a'), np.inf)
+        self.assertAlmostEqual(circuit.getResistance('b', 'c'), 10.0)
+        self.assertAlmostEqual(circuit.getResistance('a', 'c'), 10.0)
+        self.assertAlmostEqual(circuit.getResistance('c', 'a'), np.inf)
 
 if __name__ == '__main__':
     unittest.main()
\ No newline at end of file
diff --git a/test/test_socialnetworks.py b/test/test_socialnetworks.py
index 8ff09d2..8dba494 100644
--- a/test/test_socialnetworks.py
+++ b/test/test_socialnetworks.py
@@ -62,7 +62,7 @@ def test_socialnetwork(self):
         testresults = pd.read_csv(os.path.join(THIS_DIR, 'socialnetworkranks.csv'),
                                   header=None,
                                   names=['name1', 'name2', 'resistance'],
-                                  dtype={'name1': str, 'name2': str, 'resistance': np.float_})
+                                  dtype={'name1': str, 'name2': str, 'resistance': np.float64})
 
         for _, row in testresults.iterrows():
             name1 = row['name1']