From b349ee89bc6b3e3c123749e6df542d38d575a807 Mon Sep 17 00:00:00 2001 From: Michael Winter Date: Mon, 16 Mar 2026 15:50:02 +0100 Subject: [PATCH] Extract DIMS to separate dims.py module - Create src/dims.py with DIMS_4, DIMS_5, DIMS_7, DIMS_8 constants - Update pitch.py to import from dims - Update harmonic_space.py to import from dims - Update io.py to import from dims - Fix circular import issue --- src/dims.py | 5 +++++ src/harmonic_space.py | 3 ++- src/io.py | 2 +- src/pitch.py | 5 +---- 4 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 src/dims.py diff --git a/src/dims.py b/src/dims.py new file mode 100644 index 0000000..0eac11b --- /dev/null +++ b/src/dims.py @@ -0,0 +1,5 @@ +# DIMS constants - which prime factors define harmonic space dimensions +DIMS_8 = (2, 3, 5, 7, 11, 13, 17, 19) +DIMS_7 = (2, 3, 5, 7, 11, 13, 17) +DIMS_5 = (2, 3, 5, 7, 11) +DIMS_4 = (2, 3, 5, 7) diff --git a/src/harmonic_space.py b/src/harmonic_space.py index 4ac4837..9242ed4 100644 --- a/src/harmonic_space.py +++ b/src/harmonic_space.py @@ -11,8 +11,9 @@ from typing import Iterator import networkx as nx -from .pitch import Pitch, DIMS_7 +from .pitch import Pitch from .chord import Chord +from .dims import DIMS_4, DIMS_5, DIMS_7, DIMS_8 class HarmonicSpace: diff --git a/src/io.py b/src/io.py index f5063ff..e9062cc 100644 --- a/src/io.py +++ b/src/io.py @@ -242,7 +242,7 @@ def save_graph_to_cache( def main(): """Demo: Generate compact sets and build graph.""" import argparse - from .pitch import DIMS_4, DIMS_5, DIMS_7, DIMS_8 + from .dims import DIMS_4, DIMS_5, DIMS_7, DIMS_8 from .harmonic_space import HarmonicSpace from .graph import PathFinder diff --git a/src/pitch.py b/src/pitch.py index f7f0805..7c05db4 100644 --- a/src/pitch.py +++ b/src/pitch.py @@ -12,10 +12,7 @@ from math import log from operator import add from typing import Iterator -DIMS_8 = (2, 3, 5, 7, 11, 13, 17, 19) -DIMS_7 = (2, 3, 5, 7, 11, 13, 17) -DIMS_5 = (2, 3, 5, 7, 11) -DIMS_4 = (2, 3, 5, 7) +from .dims import DIMS_4, DIMS_5, DIMS_7, DIMS_8 class Pitch: