Skip to content

Commit ca75b51

Browse files
committed
upload codes
0 parents  commit ca75b51

12 files changed

+925
-0
lines changed

.gitignore

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
wasted/
2+
*.swp
3+
*.swo
4+
*.swq
5+
# Byte-compiled / optimized / DLL files
6+
__pycache__/
7+
*.py[cod]
8+
*~
9+
.idea/
10+
.idea/*
11+
# C extensions
12+
#*.so
13+
# Distribution / packaging
14+
.Python
15+
env/
16+
bin/
17+
build/
18+
develop-eggs/
19+
dist/
20+
eggs/
21+
lib/
22+
lib64/
23+
parts/
24+
sdist/
25+
var/
26+
*.egg-info/
27+
.installed.cfg
28+
*.egg
29+
# Installer logs
30+
pip-log.txt
31+
pip-delete-this-directory.txt
32+
# Unit test / coverage reports
33+
htmlcov/
34+
.tox/
35+
.coverage
36+
.cache
37+
nosetests.xml
38+
coverage.xml
39+
# Translations
40+
*.mo
41+
# Mr Developer
42+
.mr.developer.cfg
43+
.project
44+
.pydevproject
45+
# Rope
46+
.ropeproject
47+
# Django stuff:
48+
*.log
49+
*.pot
50+
# Sphinx documentation
51+
docs/_build/

.test/README.md

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
What I have tried
2+
==================
3+
4+
To make this address book, I thought I would need to

.test/addressbook.py

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
class Person(object):
2+
"""
3+
Person:
4+
"""
5+
first_name=""
6+
last_name=""
7+
email_address=set()
8+
phone_number=set()
9+
group=set()
10+
11+
12+
def __init__(self):
13+
super(Group, self).__init__()
14+
15+
16+
def __init__(self):
17+
pass
18+
19+
class Group(object):
20+
"""Doc string for Group"""
21+
# person=Person()
22+
person=set()
23+
24+
def __init__(self):
25+
"""
26+
:: @todo
27+
"""
28+
super(Group, self).__init__()
29+
30+
31+
class AddressBook(object):
32+
"""Doc string for AddressBook"""
33+
group = Group()
34+
addressbook = []
35+
__default_group = "generic"
36+
37+
def __init__(self):
38+
"""
39+
:: @todo
40+
"""
41+
super(AddressBook, self).__init__()
42+
43+
def add_person_to_group(self, person=None, group=None):
44+
if person is None:
45+
raise ValueError("person not declared")
46+
if group is None:
47+
group = self.__default_group
48+
49+
50+
class BookManager(object):
51+
"""Doc string for BookManager"""
52+
persons = set()
53+
groups = set()
54+
addressbook = AddressBook() # assuming we only have 1 book
55+
__default_group = "default"
56+
matrix = [[[]]]
57+
58+
def __init__(self):
59+
"""
60+
:: @todo
61+
"""
62+
super(BookManager, self).__init__()
63+
# lets add one default group for all people
64+
self.groups.add(self.__default_group)
65+
66+
67+
def add_person_to_group(self, person=None, group=None):
68+
if person is None:
69+
raise ValueError("person not declared")
70+
elif person is not Person():
71+
raise ValueError("person should be a Person() instance")
72+
if group is None:
73+
group = self.__default_group

.test/sql_models.py

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
sql_create_addressbook = """
2+
CREATE TABLE ad_book(
3+
id INTEGER PRIMARY KEY AUTOINCREMENT,
4+
name TEXT);
5+
"""
6+
7+
sql_create_person = """
8+
CREATE TABLE ad_person (
9+
id INTEGER PRIMARY KEY AUTOINCREMENT, first_name TEXT,
10+
last_name TEXT
11+
);
12+
"""
13+
14+
sql_create_group = """
15+
CREATE TABLE ad_group(
16+
id INTEGER PRIMARY KEY AUTOINCREMENT,
17+
name TEXT);
18+
"""
19+
20+
sql_create_email = """
21+
CREATE TABLE ad_email (
22+
id INTEGER PRIMARY KEY AUTOINCREMENT,
23+
name TEXT
24+
);
25+
"""
26+
27+
sql_create_street = """
28+
CREATE TABLE ad_street (
29+
id INTEGER PRIMARY KEY AUTOINCREMENT,
30+
name TEXT
31+
);
32+
"""
33+
34+
sql_create_phone = """
35+
CREATE TABLE ad_phone (
36+
id INTEGER PRIMARY KEY AUTOINCREMENT,
37+
name TEXT
38+
);
39+
"""
40+
41+
### Many-to-many mappings
42+
sql_create_person_group = """
43+
CREATE TABLE ad_person_group (
44+
person_id INTEGER,
45+
group_id INTEGER,
46+
FOREIGN KEY(person_id) REFERENCES ad_person(id),
47+
FOREIGN KEY(group_id) REFERENCES ad_group(id)
48+
);
49+
"""
50+
51+
### Many-to-many mappings
52+
sql_create_person_street = """
53+
CREATE TABLE ad_person_street (
54+
person_id INTEGER,
55+
street_id INTEGER,
56+
FOREIGN KEY(person_id) REFERENCES ad_person(id),
57+
FOREIGN KEY(street_id) REFERENCES ad_street(id)
58+
);
59+
"""
60+
61+
### Many-to-many mappings
62+
sql_create_person_email = """
63+
CREATE TABLE ad_person_email (
64+
person_id INTEGER,
65+
email_id INTEGER,
66+
FOREIGN KEY(person_id) REFERENCES ad_person(id),
67+
FOREIGN KEY(email_id) REFERENCES ad_email(id)
68+
);
69+
"""
70+
71+
### Many-to-many mappings
72+
sql_create_person_phone = """
73+
CREATE TABLE ad_person_phone (
74+
person_id INTEGER,
75+
phone_id INTEGER,
76+
FOREIGN KEY(person_id) REFERENCES ad_person(id),
77+
FOREIGN KEY(phone_id) REFERENCES ad_phone(id)
78+
);
79+
"""

.test/test_ttt.py

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from ttt import BookManager
2+
3+
"""
4+
Test case
5+
"""
6+
7+
8+
if __name__ == "__main__":
9+
a = BookManager()
10+
11+
# create person
12+
a.createPerson(first_name='Alex', last_name='Joon') # id 1
13+
a.createPerson(first_name='Tom', last_name='Green') # id 2
14+
print("#### show all person ####")
15+
a.showPerson()
16+
17+
# create group
18+
a.createGroup(name='cosplay') # id 1
19+
a.createGroup(name='Vim') # id 2
20+
a.createGroup(name='music') # id 3
21+
22+
23+
# create street
24+
a.createStreet(name='St. 11 New York') # id 1
25+
a.createStreet(name='St. 12 L.A.') # id 2
26+
27+
# create email
28+
a.createEmail(name='[email protected]') # id 1
29+
a.createEmail(name='[email protected]') # id 2
30+
a.createEmail(name='[email protected]') # id 3
31+
a.createEmail(name='[email protected]') # id 4
32+
33+
# create phone
34+
a.createPhone(name='2312344') # id 1
35+
a.createPhone(name='5934244') # id 2
36+
a.createPhone(name='9091003') # id 3
37+
38+
39+
# create relationship -- Many To Many
40+
a.createPersonGroup(person_id=1, group_id=1)
41+
a.createPersonGroup(person_id=2, group_id=1)
42+
a.createPersonGroup(person_id=2, group_id=3)
43+
44+
a.createPersonStreet(person_id=1, street_id=1)
45+
a.createPersonStreet(person_id=1, street_id=2)
46+
47+
a.createPersonEmail(person_id=1, email_id=1)
48+
a.createPersonEmail(person_id=1, email_id=4)
49+
a.createPersonEmail(person_id=2, email_id=1)
50+
a.createPersonEmail(person_id=2, email_id=3)
51+
52+
a.createPersonPhone(person_id=1, phone_id=2)
53+
54+
# show person group
55+
print("#### show all person group ####")
56+
a.showPersonGroup()
57+
58+
# show group by person
59+
print("#### show group by person id: 1 ####")
60+
a.showGroupByPerson(person_id=1)
61+
62+
print("#### show group by person id: 2 ####")
63+
a.showGroupByPerson(person_id=2)
64+

0 commit comments

Comments
 (0)