From e9a589d6e36a1137bf989fa703361036818c1fe9 Mon Sep 17 00:00:00 2001 From: Nick Laws Date: Fri, 23 Sep 2022 13:31:15 -0600 Subject: [PATCH 1/2] add pandas to setup.py install_requires --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index cbacfe58..cc46c429 100644 --- a/setup.py +++ b/setup.py @@ -109,7 +109,7 @@ def run(self): "Programming Language :: Python :: 3.6", ], test_suite="tests", - install_requires=["click", "future", "networkx", "six", "traitlets>=4.1", "json_tricks", "numpy"], + install_requires=["click", "future", "networkx", "six", "traitlets>=4.1", "json_tricks", "numpy", "pandas"], extras_require={ "all": extras_requires + opendss_requires From 832310fe8bbc9accf25cd87dd10e3779278b6f71 Mon Sep 17 00:00:00 2001 From: Tarek Elgindy Date: Thu, 17 Nov 2022 22:30:10 -0700 Subject: [PATCH 2/2] Adding ordering function. Should be applied in all Master writes --- ditto/writers/opendss/write.py | 42 ++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/ditto/writers/opendss/write.py b/ditto/writers/opendss/write.py index 119422f4..fad6c768 100644 --- a/ditto/writers/opendss/write.py +++ b/ditto/writers/opendss/write.py @@ -13,6 +13,7 @@ import pandas as pd from functools import reduce +from functools import cmp_to_key # DiTTo imports from ditto.models.node import Node @@ -143,6 +144,41 @@ def float_to_str(self, f): d1 = ctx.create_decimal(repr(f)) return format(d1, "f") + def order_output(self,s1,s2): + """ Order the outputs as: + - wiredata + - CNDATA + - linegeometry + - linecodes + - lines + - transformers + - regulators + - loadshapes + - loads + - capacitors + """ + ordered_elements = ['wiredata','CNDATA','linegeometry','linecodes','lines','transformers','regulators','loadshapes','loads','capacitors','storage','PVSystems'] + for element_key in ordered_elements: + element = self.output_filenames[element_key] + if element in s1 and not element in s2: + return -1 + if element in s2 and not element in s1: + return 1 + if element in s1 and element in s2: + if s1