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