commit 1991e2cb7c6837dd98b60865c8ec798ffd4ef212
parent d814fca7797204b300352f108ef42a5641d11be4
Author: nolash <dev@holbrook.no>
Date:   Sun, 27 Jun 2021 10:49:03 +0200
Make numdir values cumulative
Diffstat:
6 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
@@ -1,3 +1,5 @@
+- 0.0.2
+	* make subdir values cumulative in numdir
 - 0.0.1
 	* add hexdir
 	* add numdir
diff --git a/leveldir/base.py b/leveldir/base.py
@@ -1,5 +1,6 @@
 # standard imports
 import os
+import stat
 
 
 class LevelDir:
@@ -17,6 +18,16 @@ class LevelDir:
         self.master_file = os.path.join(self.path, 'master')
 
 
+    def __verify_directory(self):
+        fi = os.stat(self.path)
+        if not stat.S_ISDIR(fi.st_mode):
+            raise ValueError('{} is not a directory'.format(self.path))
+        #f = os.listdir(self.path)
+        #os.listdir(self.path)
+        #f.close()
+        return True
+
+
     def count(self):
         fi = os.stat(self.master_file)
         c = fi.st_size / self.entry_length
diff --git a/leveldir/hex.py b/leveldir/hex.py
@@ -1,6 +1,5 @@
 # standard imports
 import os
-import stat
 import logging
 
 # external imports
@@ -99,16 +98,6 @@ class HexDir(LevelDir):
         return file_path
 
 
-    def __verify_directory(self):
-        fi = stat(self.path)
-        if not stat.S_ISDIR(fi.st_mode):
-            raise ValueError('{} is not a directory'.format(self.path))
-        #f = os.listdir(self.path)
-        #os.listdir(self.path)
-        #f.close()
-        return True
-
-
     @staticmethod
     def __prepare_directory(path):
         os.makedirs(path, exist_ok=True)
diff --git a/leveldir/numeric.py b/leveldir/numeric.py
@@ -30,10 +30,12 @@ class NumDir(LevelDir):
         c = n 
         x = 0
         d = []
+        v = 0
         for t in self.thresholds:
             x = math.floor(c / t)
             y = x * t
-            d.append(str(y))
+            v += y
+            d.append(str(v))
             c -= y
         return os.path.join(self.path, *d) 
       
diff --git a/setup.cfg b/setup.cfg
@@ -1,6 +1,6 @@
 [metadata]
 name = leveldir
-version = 0.0.1
+version = 0.0.2
 description = Create multi-level directory structures
 author = Louis Holbrook
 author_email = dev@holbrook.no
diff --git a/tests/test_numdir.py b/tests/test_numdir.py
@@ -34,7 +34,7 @@ class NumDirTest(unittest.TestCase):
         (path, two) = os.path.split(path)
         (path, one) = os.path.split(path)
         self.assertEqual(three, '1337')
-        self.assertEqual(two, '300')
+        self.assertEqual(two, '1300')
         self.assertEqual(one, '1000')
 
 
@@ -59,7 +59,6 @@ class NumDirTest(unittest.TestCase):
 
 
     def test_multilevel(self):
-        logg.debug('using dir {}'.format(self.dir))
         self.numdir = NumDir(os.path.join(self.dir, 'n'), [1000, 100, 10])
         b = os.urandom(32)
         self.numdir.add(1337, b)