Skip to content

Commit 4b202c2

Browse files
committed
feat(utils)!: move get_next_hex_color to separate utils module
BREAKING CHANGE: `pynml.get_next_hex_color` -> `utils.plot.get_next_hex_color`
1 parent 0029f38 commit 4b202c2

File tree

6 files changed

+25
-21
lines changed

6 files changed

+25
-21
lines changed

pyneuroml/analysis/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from pyneuroml import pynml
88
from pyneuroml.lems.LEMSSimulation import LEMSSimulation
99
from pyneuroml.lems import generate_lems_file_for_neuroml
10+
from pyneuroml.utils.plot import get_next_hex_color
1011
import neuroml as nml
1112
from pyelectro.analysis import max_min
1213
from pyelectro.analysis import mean_spike_frequency
@@ -240,7 +241,7 @@ def generate_current_vs_frequency_curve(
240241
for i in range(number_cells):
241242
ref = "v_cell%i" % i
242243
quantity = "%s[%i]/v" % (pop.id, i)
243-
ls.add_line_to_display(disp0, ref, quantity, "1mV", pynml.get_next_hex_color())
244+
ls.add_line_to_display(disp0, ref, quantity, "1mV", get_next_hex_color())
244245
ls.add_column_to_output_file(of0, ref, quantity)
245246

246247
lems_file_name = ls.save_to_file()

pyneuroml/lems/LEMSSimulation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from neuroml import __version__ as libnml_ver
1414
from pyneuroml.pynml import read_neuroml2_file
1515
from pyneuroml.pynml import read_lems_file
16-
from pyneuroml.pynml import get_next_hex_color
16+
from pyneuroml.utils.plot import get_next_hex_color
1717

1818
logger = logging.getLogger(__name__)
1919

pyneuroml/lems/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
import shutil
55
import os
66
import logging
7-
from pyneuroml.pynml import read_neuroml2_file, get_next_hex_color
7+
from pyneuroml.pynml import read_neuroml2_file
8+
from pyneuroml.utils.plot import get_next_hex_color
89
import random
910
import neuroml
1011

pyneuroml/plot/PlotMorphology.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
from matplotlib_scalebar.scalebar import ScaleBar
2020
import plotly.graph_objects as go
2121

22-
from pyneuroml.pynml import read_neuroml2_file, get_next_hex_color
22+
from pyneuroml.pynml import read_neuroml2_file
2323
from pyneuroml.utils.cli import build_namespace
2424
from pyneuroml.utils import extract_position_info
25-
from pyneuroml.utils.plot import add_text_to_2D_plot
25+
from pyneuroml.utils.plot import add_text_to_2D_plot, get_next_hex_color
2626
from neuroml import (SegmentGroup, Cell)
2727
from neuroml.neuro_lex_ids import neuro_lex_ids
2828

pyneuroml/pynml.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1929,22 +1929,6 @@ def reload_saved_data(
19291929
return traces
19301930

19311931

1932-
def get_next_hex_color(my_random: typing.Optional[random.Random] = None) -> str:
1933-
"""Get a new randomly generated HEX colour code.
1934-
1935-
You may pass a random.Random instance that you may be used. Otherwise the
1936-
default Python random generator will be used.
1937-
1938-
:param my_random: a random.Random object
1939-
:type my_random: random.Random
1940-
:returns: HEX colour code
1941-
"""
1942-
if my_random is not None:
1943-
return "#%06x" % my_random.randint(0, 0xFFFFFF)
1944-
else:
1945-
return "#%06x" % random.randint(0, 0xFFFFFF)
1946-
1947-
19481932
def confirm_file_exists(filename: str) -> None:
19491933
"""Check if a file exists, exit if it does not.
19501934

pyneuroml/utils/plot.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
from matplotlib.axes import Axes
1111
import numpy
12+
import typing
13+
import random
1214

1315

1416
def add_text_to_2D_plot(ax: Axes, xv, yv, color, text: str):
@@ -36,3 +38,19 @@ def add_text_to_2D_plot(ax: Axes, xv, yv, color, text: str):
3638
ax.text((xv[0] + xv[1]) / 2, (yv[0] + yv[1]) / 2, text, color=color,
3739
horizontalalignment="center", verticalalignment="bottom",
3840
rotation_mode="default", rotation=angle)
41+
42+
43+
def get_next_hex_color(my_random: typing.Optional[random.Random] = None) -> str:
44+
"""Get a new randomly generated HEX colour code.
45+
46+
You may pass a random.Random instance that you may be used. Otherwise the
47+
default Python random generator will be used.
48+
49+
:param my_random: a random.Random object
50+
:type my_random: random.Random
51+
:returns: HEX colour code
52+
"""
53+
if my_random is not None:
54+
return "#%06x" % my_random.randint(0, 0xFFFFFF)
55+
else:
56+
return "#%06x" % random.randint(0, 0xFFFFFF)

0 commit comments

Comments
 (0)