Skip to content

Commit 0ab7cd3

Browse files
committed
Adding checks for printing optional attributes in __str__
1 parent c4920ea commit 0ab7cd3

File tree

7 files changed

+31
-23
lines changed

7 files changed

+31
-23
lines changed

openml/datasets/dataset.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,13 +181,15 @@ def __str__(self):
181181
fields = {"Name": self.name,
182182
"Version": self.version,
183183
"Format": self.format,
184-
"Upload Date": self.upload_date.replace('T', ' '),
185184
"Licence": self.licence,
186185
"Download URL": self.url,
187-
"OpenML URL": "{}d/{}".format(base_url, self.dataset_id),
188186
"Data file": self.data_file,
189187
"Pickle file": self.data_pickle_file,
190188
"# of features": len(self.features)}
189+
if self.upload_date is not None:
190+
fields["Upload Date"] = self.upload_date.replace('T', ' ')
191+
if self.dataset_id is not None:
192+
fields["OpenML URL"] = "{}d/{}".format(base_url, self.dataset_id)
191193
if self.qualities['NumberOfInstances'] is not None:
192194
fields["# of instances"] = int(self.qualities['NumberOfInstances'])
193195

openml/evaluations/evaluation.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import openml.config
2-
import pandas as pd
32

43

54
class OpenMLEvaluation(object):

openml/flows/flow.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from ..utils import extract_xml_tags, _tag_entity
99

1010
import openml.config
11-
import pandas as pd
1211

1312

1413
class OpenMLFlow(object):
@@ -140,12 +139,17 @@ def __str__(self):
140139
header = '{}\n{}\n'.format(header, '=' * len(header))
141140

142141
base_url = "{}".format(openml.config.server[:-len('api/v1/xml')])
143-
fields = {"Flow ID": "{} (version {})".format(self.flow_id, self.version),
144-
"Flow URL": "{}f/{}".format(base_url, self.flow_id),
145-
"Flow Name": self.name,
142+
fields = {"Flow Name": self.name,
146143
"Flow Description": self.description,
147-
"Upload Date": self.upload_date.replace('T', ' '),
148144
"Dependencies": self.dependencies}
145+
if self.flow_id is not None:
146+
if self.version is not None:
147+
fields["Flow ID"] = "{} (version {})".format(self.flow_id, self.version)
148+
else:
149+
fields["Flow ID"] = self.flow_id
150+
fields["Flow URL"] = "{}f/{}".format(base_url, self.flow_id)
151+
if self.upload_date is not None:
152+
fields["Upload Date"] = self.upload_date.replace('T', ' ')
149153
if self.binary_url is not None:
150154
fields["Binary URL"] = self.binary_url
151155

openml/runs/run.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import arff
88
import numpy as np
99
import xmltodict
10-
import pandas as pd
1110

1211
import openml
1312
import openml._api_calls
@@ -70,20 +69,22 @@ def __str__(self):
7069

7170
base_url = "{}".format(openml.config.server[:-len('api/v1/xml')])
7271
fields = {"Uploader Name": self.uploader_name,
73-
"Uploader Profile": "{}u/{}".format(base_url, self.uploader),
7472
"Metric": self.task_evaluation_measure,
7573
"Run ID": self.run_id,
76-
"Run URL": "{}r/{}".format(base_url, self.run_id),
7774
"Task ID": self.task_id,
7875
"Task Type": self.task_type,
79-
"Task URL": "{}t/{}".format(base_url, self.run_id),
76+
"Task URL": "{}t/{}".format(base_url, self.task_id),
8077
"Flow ID": self.flow_id,
8178
"Flow Name": self.flow_name,
8279
"Flow URL": "{}f/{}".format(base_url, self.flow_id),
8380
"Setup ID": self.setup_id,
8481
"Setup String": self.setup_string,
8582
"Dataset ID": self.dataset_id,
8683
"Dataset URL": "{}d/{}".format(base_url, self.dataset_id)}
84+
if self.uploader is not None:
85+
fields["Uploader Profile"] = "{}u/{}".format(base_url, self.uploader)
86+
if self.run_id is not None:
87+
fields["Run URL"] = "{}r/{}".format(base_url, self.run_id)
8788
if self.task_evaluation_measure in self.evaluations:
8889
fields["Result"] = self.evaluations[self.task_evaluation_measure]
8990

openml/setups/setup.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import openml.config
2-
import pandas as pd
32

43

54
class OpenMLSetup(object):

openml/study/study.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import xmltodict
55

66
import openml
7-
import pandas as pd
87

98

109
class BaseStudy(object):
@@ -93,13 +92,16 @@ def __init__(
9392
def __str__(self):
9493
# header is provided by the sub classes
9594
base_url = "{}".format(openml.config.server[:-len('api/v1/xml')])
96-
fields = {"ID": self.id,
97-
"Name": self.name,
95+
fields = {"Name": self.name,
9896
"Status": self.status,
99-
"Main Entity Type": self.main_entity_type,
100-
"Study URL": "{}s/{}".format(base_url, self.id),
101-
"Creator": "{}u/{}".format(base_url, self.creator),
102-
"Upload Time": self.creation_date.replace('T', ' ')}
97+
"Main Entity Type": self.main_entity_type}
98+
if self.id is not None:
99+
fields["ID"] = self.id
100+
fields["Study URL"] = "{}s/{}".format(base_url, self.id)
101+
if self.creator is not None:
102+
fields["Creator"] = "{}u/{}".format(base_url, self.creator)
103+
if self.creation_date is not None:
104+
fields["Upload Time"] = self.creation_date.replace('T', ' ')
103105
if self.data is not None:
104106
fields["# of Data"] = len(self.data)
105107
if self.tasks is not None:

openml/tasks/task.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,10 @@ def __str__(self):
4747
header = '{}\n{}\n'.format(header, '=' * len(header))
4848

4949
base_url = "{}".format(openml.config.server[:-len('api/v1/xml')])
50-
fields = {"Task Type": self.task_type,
51-
"Task ID": self.task_id,
52-
"Task URL": "{}t/{}".format(base_url, self.task_id)}
50+
fields = {"Task Type": self.task_type}
51+
if self.task_id is not None:
52+
fields["Task ID"] = self.task_id
53+
fields["Task URL"] = "{}t/{}".format(base_url, self.task_id)
5354
if self.evaluation_measure is not None:
5455
fields["Evaluation Measure"] = self.evaluation_measure
5556
if self.estimation_procedure is not None:

0 commit comments

Comments
 (0)