Skip to content

Commit 084028a

Browse files
add pint support to str_spice and cleanup
1 parent 0c44b8c commit 084028a

File tree

12 files changed

+176
-67
lines changed

12 files changed

+176
-67
lines changed

PySpice/Spice/AnalysisParameters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@
4444

4545
####################################################################################################
4646

47-
from ..Tools.StringTools import join_list
4847
from ..Unit import as_s, as_Hz
48+
from .StringTools import join_list
4949

5050
####################################################################################################
5151

PySpice/Spice/BasicElement.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@
9999

100100
import logging
101101

102-
from ..Tools.StringTools import str_spice, join_list, join_dict
103102
from ..Unit import U_m, U_s, U_A, U_V, U_Degree, U_Ω, U_F, U_H, U_Hz
104103
from .Element import (
105104
AnyPinElement,
@@ -124,6 +123,8 @@
124123
IntKeyParameter,
125124
ModelPositionalParameter,
126125
)
126+
from .StringTools import join_list, join_dict
127+
from .unit import str_spice
127128

128129
####################################################################################################
129130

PySpice/Spice/DeviceModel.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
####################################################################################################
2424

25-
from PySpice.Tools.StringTools import join_dict
25+
from .StringTools import join_dict
2626

2727
####################################################################################################
2828

PySpice/Spice/Element.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@
3838

3939
####################################################################################################
4040

41-
from PySpice.Tools.StringTools import join_list
4241
from .ElementParameter import (
4342
ParameterDescriptor,
4443
PositionalElementParameter,
4544
FlagParameter, KeyValueParameter,
4645
)
4746
from .FakeDipole import FakeDipole
47+
from .StringTools import join_list
4848

4949
####################################################################################################
5050

PySpice/Spice/ElementParameter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
####################################################################################################
2626

2727
from ..Unit import Unit
28-
from ..Tools.StringTools import str_spice
28+
from .unit import str_spice
2929

3030
####################################################################################################
3131

PySpice/Spice/HighLevelElement.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@
2727
####################################################################################################
2828

2929
from ..Math import rms_to_amplitude, amplitude_to_rms
30-
from ..Tools.StringTools import join_list, join_dict, str_spice, str_spice_list
3130
from ..Unit import as_s, as_V, as_A, as_Hz
3231
from .BasicElement import VoltageSource, CurrentSource
32+
from .StringTools import join_list, join_dict
33+
from .unit import str_spice, str_spice_list
3334

3435
####################################################################################################
3536

PySpice/Spice/Netlist.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,10 @@ def __init__(self, **kwargs):
8787

8888
####################################################################################################
8989

90-
from PySpice.Tools.StringTools import join_lines, join_list, prefix_lines, TextBuffer
90+
from PySpice.Tools.TextBuffer import TextBuffer
9191
from .DeviceModel import DeviceModel
9292
from .Element import Pin
93+
from .StringTools import join_list, prefix_lines
9394

9495
####################################################################################################
9596

PySpice/Spice/Parser/HighLevelParser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@
8181
import logging
8282
import os
8383

84-
from PySpice.Spice.Netlist import Node
85-
from PySpice.Tools.StringTools import remove_multi_space
84+
from ..Netlist import Node
85+
from ..StringTools import remove_multi_space
8686
from . import Ast
8787
from . import ElementData
8888
from .Ast import AstNode

PySpice/Spice/Simulation.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
####################################################################################################
3535

36-
from ..Tools.StringTools import join_list, join_dict, str_spice, TextBuffer
36+
from ..Tools.TextBuffer import TextBuffer
3737
from ..Unit import as_Degree, u_Degree
3838
from .AnalysisParameters import (
3939
ACAnalysisParameters,
@@ -48,6 +48,8 @@
4848
TransferFunctionAnalysisParameters,
4949
TransientAnalysisParameters,
5050
)
51+
from .StringTools import join_list, join_dict
52+
from .unit import str_spice
5153

5254
####################################################################################################
5355

PySpice/Tools/StringTools.py renamed to PySpice/Spice/StringTools.py

Lines changed: 2 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -22,45 +22,22 @@
2222
'join_dict',
2323
'join_lines',
2424
'join_list',
25-
'str_spice',
26-
'str_spice_list',
2725
'prefix_lines',
2826
'remove_multi_space',
29-
'TextBufer',
3027
]
3128

3229
####################################################################################################
3330

3431
import os
3532

36-
####################################################################################################
37-
38-
from PySpice.Unit.Unit import UnitValue
39-
40-
####################################################################################################
41-
42-
def str_spice(obj, unit=True):
43-
# Fixme: right place ???
44-
'''Convert an object to a Spice compatible string.'''
45-
if isinstance(obj, UnitValue):
46-
if unit:
47-
return obj.str_spice()
48-
else: # Fixme: ok ???
49-
return obj.str(spice=False, space=False, unit=False)
50-
else:
51-
return str(obj)
52-
53-
####################################################################################################
54-
55-
def str_spice_list(*args):
56-
return [str_spice(x) for x in args]
33+
from .unit import str_spice
5734

5835
####################################################################################################
5936

6037
def prefix_lines(items, prefix=''):
6138
return [prefix + str(item)
6239
for item in items
63-
if item is not None] # Fixme: and item
40+
if item is not None] # Fixme: and item
6441

6542
####################################################################################################
6643

@@ -110,35 +87,3 @@ def remove_multi_space(txt: str) -> str:
11087
new_txt += c
11188
last_c = c
11289
return new_txt
113-
114-
####################################################################################################
115-
116-
class TextBuffer:
117-
118-
##############################################
119-
120-
def __init__(self):
121-
self._lines = []
122-
123-
##############################################
124-
125-
def _append_line(self, line):
126-
if line is not None:
127-
_ = str(line)
128-
if _:
129-
self._lines.append(_)
130-
131-
##############################################
132-
133-
def __iadd__(self, obj):
134-
if isinstance(obj, (list, tuple)):
135-
for _ in obj:
136-
self._append_line(_)
137-
else:
138-
self._append_line(obj)
139-
return self
140-
141-
##############################################
142-
143-
def __str__(self):
144-
return os.linesep.join(self._lines)

0 commit comments

Comments
 (0)