44from pathlib import Path
55
66
7- def clean_dict (obj ):
8- """
9- Remove keys from the dictionary where the corresponding value is None.
10-
11- Parameters
12- ----------
13- obj: dict
14- The dictionary to clean. If None, initialize as an empty dictionary.
15-
16- Returns
17- -------
18- dict:
19- The cleaned dictionary with keys removed where the value is None.
20-
21- """
22- obj = obj if obj is not None else {}
23- for key , value in copy (obj ).items ():
24- if not value :
25- del obj [key ]
26- return obj
27-
28-
29- def stringify (obj ):
7+ def _stringify (obj ):
308 """
319 Convert None to an empty string.
3210
@@ -43,7 +21,7 @@ def stringify(obj):
4321 return obj if obj is not None else ""
4422
4523
46- def load_config (file_path ):
24+ def _load_config (file_path ):
4725 """
4826 Load configuration from a .json file.
4927
@@ -67,21 +45,14 @@ def load_config(file_path):
6745 return {}
6846
6947
70- def _sorted_merge (* dicts ):
71- merged = {}
72- for d in dicts :
73- merged .update (d )
74- return merged
75-
76-
7748def _create_global_config (args ):
7849 username = input (
7950 f"Please enter the name you would want future work to be credited to " f"[{ args .get ('username' , '' )} ]: "
8051 ).strip () or args .get ("username" , "" )
8152 email = input (f"Please enter the your email " f"[{ args .get ('email' , '' )} ]: " ).strip () or args .get ("email" , "" )
8253 return_bool = False if username is None or email is None else True
8354 with open (Path ().home () / "diffpyconfig.json" , "w" ) as f :
84- f .write (json .dumps ({"username" : stringify (username ), "email" : stringify (email )}))
55+ f .write (json .dumps ({"username" : _stringify (username ), "email" : _stringify (email )}))
8556 print (
8657 f"You can manually edit the config file at { Path ().home () / 'diffpyconfig.json' } using any text editor.\n "
8758 f"Or you can update the config file by passing new values to get_user_info(), "
@@ -116,7 +87,7 @@ def get_user_info(owner_name=None, owner_email=None, owner_orcid=None):
11687 The name of the user who will show as owner in the metadata that is stored with the data
11788 owner_email: string, optional, default is the value stored in the global or local config file.
11889 The email of the user/owner
119- owner_name : string, optional, default is the value stored in the global or local config file.
90+ owner_orcid : string, optional, default is the value stored in the global or local config file.
12091 The ORCID id of the user/owner
12192
12293 Returns
@@ -130,8 +101,8 @@ def get_user_info(owner_name=None, owner_email=None, owner_orcid=None):
130101 for key , value in copy (runtime_info ).items ():
131102 if value is None or value == "" :
132103 del runtime_info [key ]
133- global_config = load_config (Path ().home () / "diffpyconfig.json" )
134- local_config = load_config (Path ().cwd () / "diffpyconfig.json" )
104+ global_config = _load_config (Path ().home () / "diffpyconfig.json" )
105+ local_config = _load_config (Path ().cwd () / "diffpyconfig.json" )
135106 # if global_config is None and local_config is None:
136107 # print(
137108 # "No global configuration file was found containing "
0 commit comments