mirror of
				https://github.com/graphql-python/graphene.git
				synced 2025-11-04 01:47:45 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			97 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from collections import namedtuple
 | 
						|
 | 
						|
Human = namedtuple('Human', 'id name friends appearsIn homePlanet')
 | 
						|
 | 
						|
luke = Human(
 | 
						|
    id='1000',
 | 
						|
    name='Luke Skywalker',
 | 
						|
    friends=['1002', '1003', '2000', '2001'],
 | 
						|
    appearsIn=[4, 5, 6],
 | 
						|
    homePlanet='Tatooine',
 | 
						|
)
 | 
						|
 | 
						|
vader = Human(
 | 
						|
    id='1001',
 | 
						|
    name='Darth Vader',
 | 
						|
    friends=['1004'],
 | 
						|
    appearsIn=[4, 5, 6],
 | 
						|
    homePlanet='Tatooine',
 | 
						|
)
 | 
						|
 | 
						|
han = Human(
 | 
						|
    id='1002',
 | 
						|
    name='Han Solo',
 | 
						|
    friends=['1000', '1003', '2001'],
 | 
						|
    appearsIn=[4, 5, 6],
 | 
						|
    homePlanet=None,
 | 
						|
)
 | 
						|
 | 
						|
leia = Human(
 | 
						|
    id='1003',
 | 
						|
    name='Leia Organa',
 | 
						|
    friends=['1000', '1002', '2000', '2001'],
 | 
						|
    appearsIn=[4, 5, 6],
 | 
						|
    homePlanet='Alderaan',
 | 
						|
)
 | 
						|
 | 
						|
tarkin = Human(
 | 
						|
    id='1004',
 | 
						|
    name='Wilhuff Tarkin',
 | 
						|
    friends=['1001'],
 | 
						|
    appearsIn=[4],
 | 
						|
    homePlanet=None,
 | 
						|
)
 | 
						|
 | 
						|
humanData = {
 | 
						|
    '1000': luke,
 | 
						|
    '1001': vader,
 | 
						|
    '1002': han,
 | 
						|
    '1003': leia,
 | 
						|
    '1004': tarkin,
 | 
						|
}
 | 
						|
 | 
						|
Droid = namedtuple('Droid', 'id name friends appearsIn primaryFunction')
 | 
						|
 | 
						|
threepio = Droid(
 | 
						|
    id='2000',
 | 
						|
    name='C-3PO',
 | 
						|
    friends=['1000', '1002', '1003', '2001'],
 | 
						|
    appearsIn=[4, 5, 6],
 | 
						|
    primaryFunction='Protocol',
 | 
						|
)
 | 
						|
 | 
						|
artoo = Droid(
 | 
						|
    id='2001',
 | 
						|
    name='R2-D2',
 | 
						|
    friends=['1000', '1002', '1003'],
 | 
						|
    appearsIn=[4, 5, 6],
 | 
						|
    primaryFunction='Astromech',
 | 
						|
)
 | 
						|
 | 
						|
droidData = {
 | 
						|
    '2000': threepio,
 | 
						|
    '2001': artoo,
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
def getCharacter(id):
 | 
						|
    return humanData.get(id) or droidData.get(id)
 | 
						|
 | 
						|
 | 
						|
def getFriends(character):
 | 
						|
    return map(getCharacter, character.friends)
 | 
						|
 | 
						|
 | 
						|
def getHero(episode):
 | 
						|
    if episode == 5:
 | 
						|
        return luke
 | 
						|
    return artoo
 | 
						|
 | 
						|
 | 
						|
def getHuman(id):
 | 
						|
    return humanData.get(id)
 | 
						|
 | 
						|
 | 
						|
def getDroid(id):
 | 
						|
    return droidData.get(id)
 |