Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CSCI30_Project
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Adrian Cansino
CSCI30_Project
Commits
c6adb602
Commit
c6adb602
authored
Dec 09, 2019
by
Adrian Cansino
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update family_tree.py
parent
91d1592a
Pipeline
#689
failed with stages
Changes
1
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
83 additions
and
1 deletion
+83
-1
family_tree.py
family_tree.py
+83
-1
No files found.
family_tree.py
View file @
c6adb602
...
...
@@ -343,7 +343,10 @@ def openfile(filename): #Open Method
for
i
in
range
(
count
):
name
=
readF
.
readline
()
.
split
()[
1
]
age
=
int
(
readF
.
readline
()
.
split
()[
1
])
sex
=
bool
(
readF
.
readline
()
.
split
()[
1
])
if
readF
.
readline
()
.
split
()[
1
]
==
"true"
:
sex
=
True
else
:
sex
=
False
person
=
Person
(
name
,
age
,
sex
)
atree
.
insert_person
(
person
)
...
...
@@ -380,6 +383,83 @@ def savefile(filename, tree): #Save Method
parent
=
x
.
get_parent
()
saveF
.
write
(
"child "
+
parent
.
get_name
()
+
" "
+
x
.
get_name
()
+
"
\n
"
)
def
commandLine
():
tree
=
FamilyTree
()
while
True
:
cmd
=
input
()
.
split
()
if
cmd
[
0
]
==
"count"
:
print
(
len
(
tree
.
family_tree
.
items
()))
elif
cmd
[
0
]
==
"age"
:
try
:
print
(
tree
.
get_person
(
cmd
[
1
])
.
get_age
())
except
KeyError
:
print
(
"Error: no such person "
+
cmd
[
1
])
elif
cmd
[
0
]
==
"sex"
:
try
:
if
tree
.
get_person
(
cmd
[
1
])
.
get_sex
():
print
(
"male"
)
else
:
print
(
"female"
)
except
KeyError
:
print
(
"Error: no such person "
+
cmd
[
1
])
elif
cmd
[
0
]
==
"ancestors"
:
try
:
if
len
(
tree
.
get_ancestors
(
cmd
[
1
]))
==
0
:
print
(
"(no ancestors)"
)
else
:
for
person
in
tree
.
get_ancestors
(
cmd
[
1
]):
print
(
person
)
except
KeyError
:
print
(
"Error: no such person "
+
cmd
[
1
])
elif
cmd
[
0
]
==
"descendants"
:
try
:
if
len
(
tree
.
get_descendants
(
cmd
[
1
]))
==
0
:
print
(
"(no descendants)"
)
else
:
for
person
in
tree
.
get_descendants
(
cmd
[
1
]):
print
(
person
)
except
KeyError
:
print
(
"Error: no such person "
+
cmd
[
1
])
elif
cmd
[
0
]
==
"edit-name"
:
try
:
if
tree
.
family_tree
.
get
(
cmd
[
2
])
==
None
:
tree
.
get_person
(
cmd
[
1
])
.
set_name
(
cmd
[
2
])
tree
.
family_tree
[
cmd
[
2
]]
=
tree
.
family_tree
[
cmd
[
1
]]
del
tree
.
family_tree
[
cmd
[
1
]]
else
:
print
(
"Error: "
+
cmd
[
2
]
+
" exists already"
)
except
KeyError
:
print
(
"Error: no such person "
+
cmd
[
1
])
elif
cmd
[
0
]
==
"edit-age"
:
try
:
tree
.
get_person
(
cmd
[
1
])
.
set_name
(
cmd
[
2
])
except
KeyError
:
print
(
"Error: no such person "
+
cmd
[
1
])
elif
cmd
[
0
]
==
"edit-sex"
:
try
:
if
cmd
[
2
]
==
"true"
:
tree
.
get_person
(
cmd
[
1
])
.
set_sex
(
True
)
else
:
tree
.
get_person
(
cmd
[
1
])
.
set_sex
(
False
)
except
KeyError
:
print
(
"Error: no such person "
+
cmd
[
1
])
elif
cmd
[
0
]
==
"relationship"
:
try
:
print
(
tree
.
relationship
(
cmd
[
1
],
cmd
[
2
]))
except
KeyError
:
print
(
"Error: one or both persons do not exist"
)
elif
cmd
[
0
]
==
"load"
:
tree
=
openfile
(
cmd
[
1
])
print
(
cmd
[
1
]
+
".ft has been loaded"
)
elif
cmd
[
0
]
==
"save"
:
savefile
(
cmd
[
1
],
tree
)
print
(
"file saved"
)
elif
cmd
[
0
]
==
"bye"
:
print
(
"Goodbye!"
)
break
else
:
print
(
"Error: no such command"
)
def
main
():
r"""For testing.
...
...
@@ -440,5 +520,7 @@ def main():
savefile
(
"test"
,
ntree
)
commandLine
()
if
__name__
==
"__main__"
:
main
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment