Merge branch 'develop' of github.com:NandaScott/Scrython into develop
This commit is contained in:
		
						commit
						f83f2768d4
					
				| 
						 | 
				
			
			@ -1,5 +1,13 @@
 | 
			
		|||
# Changelog
 | 
			
		||||
 | 
			
		||||
## 1.5.0
 | 
			
		||||
 | 
			
		||||
Changes
 | 
			
		||||
 | 
			
		||||
- Key errors are now handled more cleanly, and doesn't return two traceback errors.
 | 
			
		||||
- Updated sets to be more like the other classes in structure.
 | 
			
		||||
- Updated symbology to be more like the other classes in structure.
 | 
			
		||||
 | 
			
		||||
## 1.4.2
 | 
			
		||||
 | 
			
		||||
Bugfixes
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -103,15 +103,11 @@ class CardsObject(object):
 | 
			
		|||
			raise Exception(self.scryfallJson['details'])
 | 
			
		||||
 | 
			
		||||
	def _checkForKey(self, key):
 | 
			
		||||
		try:
 | 
			
		||||
			return self.scryfallJson[key]
 | 
			
		||||
		except Exception:
 | 
			
		||||
		if not key in self.scryfallJson:
 | 
			
		||||
			raise KeyError('This card has no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
	def _checkForTupleKey(self, parent, num, key):
 | 
			
		||||
		try:
 | 
			
		||||
			return self.scryfallJson[parent][num][key]
 | 
			
		||||
		except Exception:
 | 
			
		||||
		if not key in self.scryfallJson[parent][num]:
 | 
			
		||||
			raise KeyError('This tuple has no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
	def object(self):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,9 +46,7 @@ class CatalogsObject(object):
 | 
			
		|||
			raise Exception(self.scryfallJson['details'])
 | 
			
		||||
 | 
			
		||||
	def _checkForKey(self, key):
 | 
			
		||||
		try:
 | 
			
		||||
			return self.scryfallJson[key]
 | 
			
		||||
		except Exception:
 | 
			
		||||
		if not key in self.scryfallJson:
 | 
			
		||||
			raise KeyError('This card has no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
	def object(self):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,15 +60,11 @@ class RulingsObject(object):
 | 
			
		|||
			raise Exception(self.scryfallJson['details'])
 | 
			
		||||
 | 
			
		||||
	def _checkForKey(self, key):
 | 
			
		||||
		try:
 | 
			
		||||
			return self.scryfallJson[key]
 | 
			
		||||
		except Exception:
 | 
			
		||||
		if not key in self.scryfallJson:
 | 
			
		||||
			raise KeyError('This object has no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
	def _checkForTupleKey(self, parent, num, key):
 | 
			
		||||
		try:
 | 
			
		||||
			return self.scryfallJson[parent][num][key]
 | 
			
		||||
		except Exception:
 | 
			
		||||
		if not key in self.scryfallJson[parent][num]:
 | 
			
		||||
			raise KeyError('This ruling has no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
	def object(self):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,105 +41,93 @@ class Sets(SetsObject):
 | 
			
		|||
        self._url = 'sets?'
 | 
			
		||||
        super(Sets, self).__init__(self._url)
 | 
			
		||||
 | 
			
		||||
    def _checkForKey(self, key):
 | 
			
		||||
        try:
 | 
			
		||||
            return self.scryfallJson[key]
 | 
			
		||||
        except Exception:
 | 
			
		||||
            raise KeyError('This object has no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
    def _checkForTupleKey(self, parent, num, key):
 | 
			
		||||
        try:
 | 
			
		||||
            return self.scryfallJson[parent][num][key]
 | 
			
		||||
        except Exception:
 | 
			
		||||
            raise KeyError('This object has no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
    def object(self):
 | 
			
		||||
        self._checkForKey('object')
 | 
			
		||||
        super(Sets, self)._checkForKey('object')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['object']
 | 
			
		||||
 | 
			
		||||
    def has_more(self):
 | 
			
		||||
        self._checkForKey('has_more')
 | 
			
		||||
        super(Sets, self)._checkForKey('has_more')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['has_more']
 | 
			
		||||
 | 
			
		||||
    def data(self):
 | 
			
		||||
        self._checkForKey('data')
 | 
			
		||||
        super(Sets, self)._checkForKey('data')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data']
 | 
			
		||||
 | 
			
		||||
    def data_length(self):
 | 
			
		||||
        self._checkForKey('data')
 | 
			
		||||
        super(Sets, self)._checkForKey('data')
 | 
			
		||||
 | 
			
		||||
        return len(self.scryfallJson['data'])
 | 
			
		||||
 | 
			
		||||
    def set_object(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'object')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'object')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['object']
 | 
			
		||||
 | 
			
		||||
    def set_code(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'code')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'code')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['code']
 | 
			
		||||
 | 
			
		||||
    def set_mtgo_code(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'mtgo_code')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'mtgo_code')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['mtgo_code']
 | 
			
		||||
 | 
			
		||||
    def set_name(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'name')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'name')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['name']
 | 
			
		||||
 | 
			
		||||
    def set_set_type(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'set_type')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'set_type')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['set_type']
 | 
			
		||||
 | 
			
		||||
    def set_released_at(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'released_at')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'released_at')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['released_at']
 | 
			
		||||
 | 
			
		||||
    def set_block_code(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'block_code')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'block_code')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['block_code']
 | 
			
		||||
 | 
			
		||||
    def set_block(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'block')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'block')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['block']
 | 
			
		||||
 | 
			
		||||
    def set_parent_set_code(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'parent_set_code')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'parent_set_code')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['parent_set_code']
 | 
			
		||||
 | 
			
		||||
    def set_card_count(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'card_count')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'card_count')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['card_count']
 | 
			
		||||
 | 
			
		||||
    def set_digital(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'digital')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'digital')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['digital']
 | 
			
		||||
 | 
			
		||||
    def set_foil(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'foil')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'foil')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['foil']
 | 
			
		||||
 | 
			
		||||
    def set_icon_svg_uri(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'icon_svg_uri')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'icon_svg_uri')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['icon_svg_uri']
 | 
			
		||||
 | 
			
		||||
    def set_search_uri(self, num):
 | 
			
		||||
        self._checkForTupleKey('data', num, 'search_uri')
 | 
			
		||||
        super(Sets, self)._checkForTupleKey('data', num, 'search_uri')
 | 
			
		||||
 | 
			
		||||
        return self.scryfallJson['data'][num]['search_uri']
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,8 +56,12 @@ class SetsObject(object):
 | 
			
		|||
			raise Exception(self.scryfallJson['details'])
 | 
			
		||||
 | 
			
		||||
	def _checkForKey(self, key):
 | 
			
		||||
		if not key in self.scryfallJson:
 | 
			
		||||
			raise KeyError('This object has no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
	def _checkForTupleKey(self, parent, num, key):
 | 
			
		||||
		try:
 | 
			
		||||
			return self.scryfallJson[key]
 | 
			
		||||
			return self.scryfallJson[parent][num][key]
 | 
			
		||||
		except Exception:
 | 
			
		||||
			raise KeyError('This object has no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,43 +28,37 @@ class ParseMana(SymbologyObject):
 | 
			
		|||
		self.url = 'symbology/parse-mana?cost=' + self.cost
 | 
			
		||||
		super(ParseMana, self).__init__(self.url)
 | 
			
		||||
 | 
			
		||||
	def _checkForKey(self, key):
 | 
			
		||||
		try:
 | 
			
		||||
			return self.scryfallJson[key]
 | 
			
		||||
		except Exception:
 | 
			
		||||
			raise KeyError('This object has no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
	def object(self):
 | 
			
		||||
		self._checkForKey('object')
 | 
			
		||||
		super(ParseMana, self)._checkForKey('object')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['object']
 | 
			
		||||
 | 
			
		||||
	def mana_cost(self):
 | 
			
		||||
		self._checkForKey('cost')
 | 
			
		||||
		super(ParseMana, self)._checkForKey('cost')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['cost']
 | 
			
		||||
 | 
			
		||||
	def cmc(self):
 | 
			
		||||
		self._checkForKey('cmc')
 | 
			
		||||
		super(ParseMana, self)._checkForKey('cmc')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['cmc']
 | 
			
		||||
 | 
			
		||||
	def colors(self):
 | 
			
		||||
		self._checkForKey('colors')
 | 
			
		||||
		super(ParseMana, self)._checkForKey('colors')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['colors']
 | 
			
		||||
 | 
			
		||||
	def colorless(self):
 | 
			
		||||
		self._checkForKey('colorless')
 | 
			
		||||
		super(ParseMana, self)._checkForKey('colorless')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['colorless']
 | 
			
		||||
 | 
			
		||||
	def monocolored(self):
 | 
			
		||||
		self._checkForKey('monocolored')
 | 
			
		||||
		super(ParseMana, self)._checkForKey('monocolored')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['monocolored']
 | 
			
		||||
 | 
			
		||||
	def multicolored(self):
 | 
			
		||||
		self._checkForKey('multicolored')
 | 
			
		||||
		super(ParseMana, self)._checkForKey('multicolored')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['multicolored']
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,74 +33,62 @@ class Symbology(SymbologyObject):
 | 
			
		|||
		self.url = 'symbology?'
 | 
			
		||||
		super(Symbology, self).__init__(self.url)
 | 
			
		||||
 | 
			
		||||
	def _checkForKey(self, key):
 | 
			
		||||
		try:
 | 
			
		||||
			return self.scryfallJson[key]
 | 
			
		||||
		except Exception:
 | 
			
		||||
			raise KeyError('This object ahs no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
	def _checkForTupleKey(self, parent, num, key):
 | 
			
		||||
		try:
 | 
			
		||||
			return self.scryfallJson[parent][num][key]
 | 
			
		||||
		except Exception:
 | 
			
		||||
			raise KeyError('This object has no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
	def object(self):
 | 
			
		||||
		self._checkForKey('object')
 | 
			
		||||
		super(Symbology, self)._checkForKey('object')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['object']
 | 
			
		||||
 | 
			
		||||
	def has_more(self):
 | 
			
		||||
		self._checkForKey('has_more')
 | 
			
		||||
		super(Symbology, self)._checkForKey('has_more')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['has_more']
 | 
			
		||||
 | 
			
		||||
	def data(self):
 | 
			
		||||
		self._checkForKey('has_more')
 | 
			
		||||
		super(Symbology, self)._checkForKey('has_more')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['data']
 | 
			
		||||
 | 
			
		||||
	def data_length(self):
 | 
			
		||||
		self._checkForKey('data')
 | 
			
		||||
		super(Symbology, self)._checkForKey('data')
 | 
			
		||||
 | 
			
		||||
		return len(self.scryfallJson['data'])
 | 
			
		||||
 | 
			
		||||
	def symbol_symbol(self, num):
 | 
			
		||||
		self._checkForTupleKey('data', num, 'symbol')
 | 
			
		||||
		super(Symbology, self)._checkForTupleKey('data', num, 'symbol')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['data'][num]['symbol']
 | 
			
		||||
 | 
			
		||||
	def symbol_loose_variant(self, num):
 | 
			
		||||
		self._checkForTupleKey('data', num, 'loose_variant')
 | 
			
		||||
		super(Symbology, self)._checkForTupleKey('data', num, 'loose_variant')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['data'][num]['loose_variant']
 | 
			
		||||
 | 
			
		||||
	def symbol_transposable(self, num):
 | 
			
		||||
		self._checkForTupleKey('data', num, 'transposable')
 | 
			
		||||
		super(Symbology, self)._checkForTupleKey('data', num, 'transposable')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['data'][num]['transposable']
 | 
			
		||||
 | 
			
		||||
	def symbol_represents_mana(self, num):
 | 
			
		||||
		self._checkForTupleKey('data', num, 'represents_mana')
 | 
			
		||||
		super(Symbology, self)._checkForTupleKey('data', num, 'represents_mana')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['data'][num]['represents_mana']
 | 
			
		||||
 | 
			
		||||
	def symbol_cmc(self, num):
 | 
			
		||||
		self._checkForTupleKey('data', num, 'cmc')
 | 
			
		||||
		super(Symbology, self)._checkForTupleKey('data', num, 'cmc')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['data'][num]['cmc']
 | 
			
		||||
 | 
			
		||||
	def symbol_appears_in_mana_costs(self, num):
 | 
			
		||||
		self._checkForTupleKey('data', num, 'appears_in_mana_costs')
 | 
			
		||||
		super(Symbology, self)._checkForTupleKey('data', num, 'appears_in_mana_costs')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['data'][num]['appears_in_mana_costs']
 | 
			
		||||
 | 
			
		||||
	def symbol_funny(self, num):
 | 
			
		||||
		self._checkForTupleKey('data', num, 'funny')
 | 
			
		||||
		super(Symbology, self)._checkForTupleKey('data', num, 'funny')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['data'][num]['funny']
 | 
			
		||||
 | 
			
		||||
	def symbol_colors(self, num):
 | 
			
		||||
		self._checkForTupleKey('data', num, 'colors')
 | 
			
		||||
		super(Symbology, self)._checkForTupleKey('data', num, 'colors')
 | 
			
		||||
 | 
			
		||||
		return self.scryfallJson['data'][num]['colors']
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,3 +41,11 @@ class SymbologyObject(object):
 | 
			
		|||
 | 
			
		||||
		if self.scryfallJson['object'] == 'error':
 | 
			
		||||
			raise Exception(self.scryfallJson['details'])
 | 
			
		||||
 | 
			
		||||
	def _checkForKey(self, key):
 | 
			
		||||
		if not key in self.scryfallJson:
 | 
			
		||||
			raise KeyError('This object ahs no key \'{}\''.format(key))
 | 
			
		||||
 | 
			
		||||
	def _checkForTupleKey(self, parent, num, key):
 | 
			
		||||
		if not key in self.scryfallJson[parent][num]:
 | 
			
		||||
			raise KeyError('This object has no key \'{}\''.format(key))
 | 
			
		||||
							
								
								
									
										2
									
								
								setup.py
								
								
								
								
							
							
						
						
									
										2
									
								
								setup.py
								
								
								
								
							| 
						 | 
				
			
			@ -3,7 +3,7 @@ from setuptools import setup
 | 
			
		|||
setup(
 | 
			
		||||
	name='scrython',
 | 
			
		||||
	packages=['scrython', 'scrython.cards', 'scrython.rulings', 'scrython.catalog', 'scrython.sets', 'scrython.symbology'],
 | 
			
		||||
	version='1.4.2',
 | 
			
		||||
	version='1.5.0',
 | 
			
		||||
	description='A wrapper for using the Scryfall API.',
 | 
			
		||||
	long_description='https://github.com/NandaScott/Scrython/blob/master/README.md',
 | 
			
		||||
	url='https://github.com/NandaScott/Scrython',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue