Updated/added docs for rulings
This commit is contained in:
		
							parent
							
								
									1d9b2eb9e1
								
							
						
					
					
						commit
						1d869b872c
					
				| 
						 | 
					@ -6,14 +6,15 @@ class Arena(RulingsObject):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Gets the ruling of a card by the Arena Id.
 | 
					    Gets the ruling of a card by the Arena Id.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Positional arguments:
 | 
					    Args:
 | 
				
			||||||
        id : str ................. The arena id of the card you want rulings for.
 | 
					        id (string): The arena id of the card you want rulings for.
 | 
				
			||||||
 | 
					        format (string, optional): Returns data in the specified method. Defaults to JSON.
 | 
				
			||||||
    Optional arguments:
 | 
					        face (string, optional): 
 | 
				
			||||||
        All arguments inherited from RulingsObject
 | 
					            If you're using the `image` format, this will specify if you want the front or back face.
 | 
				
			||||||
 | 
					        version (string, optional):
 | 
				
			||||||
    Attributes:
 | 
					            If you're using the `image` format, this will specify if you want the small, normal, large, etc version of the image.
 | 
				
			||||||
        All attributes inherited from RulingsObject
 | 
					        pretty (string, optional):
 | 
				
			||||||
 | 
					            Returns a prettier version of the json object. Note that this may break functionality with Scrython.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Example usage:
 | 
					    Example usage:
 | 
				
			||||||
        >>> rule = scrython.rulings.Arena(id='66975')
 | 
					        >>> rule = scrython.rulings.Arena(id='66975')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,14 +6,15 @@ class Mtgo(RulingsObject):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Gets the ruling of a card by the Mtgo Id.
 | 
					    Gets the ruling of a card by the Mtgo Id.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Positional arguments:
 | 
					    Args:
 | 
				
			||||||
        id : str ................. The mtgo id of the card you want rulings for.
 | 
					        id (string): The mtgo id of the card you want rulings for.
 | 
				
			||||||
 | 
					        format (string, optional): Returns data in the specified method. Defaults to JSON.
 | 
				
			||||||
    Optional arguments:
 | 
					        face (string, optional): 
 | 
				
			||||||
        All arguments inherited from RulingsObject
 | 
					            If you're using the `image` format, this will specify if you want the front or back face.
 | 
				
			||||||
 | 
					        version (string, optional):
 | 
				
			||||||
    Attributes:
 | 
					            If you're using the `image` format, this will specify if you want the small, normal, large, etc version of the image.
 | 
				
			||||||
        All attributes inherited from RulingsObject
 | 
					        pretty (string, optional):
 | 
				
			||||||
 | 
					            Returns a prettier version of the json object. Note that this may break functionality with Scrython.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Example usage:
 | 
					    Example usage:
 | 
				
			||||||
        >>> rule = scrython.rulings.Mtgo(id='9611')
 | 
					        >>> rule = scrython.rulings.Mtgo(id='9611')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,14 +6,15 @@ class Multiverse(RulingsObject):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Gets the ruling of a card by the Multiverse Id.
 | 
					    Gets the ruling of a card by the Multiverse Id.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Positional arguments:
 | 
					    Args:
 | 
				
			||||||
        id : str ........... The multiverse id of the card you want rulings for.
 | 
					        id (string): The multiverse id of the card you want rulings for.
 | 
				
			||||||
 | 
					        format (string, optional): Returns data in the specified method. Defaults to JSON.
 | 
				
			||||||
    Optional arguments:
 | 
					        face (string, optional): 
 | 
				
			||||||
        All arguments inherited from RulingsObject
 | 
					            If you're using the `image` format, this will specify if you want the front or back face.
 | 
				
			||||||
 | 
					        version (string, optional):
 | 
				
			||||||
    Attributes:
 | 
					            If you're using the `image` format, this will specify if you want the small, normal, large, etc version of the image.
 | 
				
			||||||
        All attributes inherited from RulingsObject
 | 
					        pretty (string, optional):
 | 
				
			||||||
 | 
					            Returns a prettier version of the json object. Note that this may break functionality with Scrython.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Example usage:
 | 
					    Example usage:
 | 
				
			||||||
        >>> rule = scrython.rulings.Id(id='4301')
 | 
					        >>> rule = scrython.rulings.Id(id='4301')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,64 +1,66 @@
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
sys.path.append('..')
 | 
					sys.path.append('..')
 | 
				
			||||||
from scrython.foundation import FoundationObject
 | 
					from scrython.foundation import FoundationObject
 | 
				
			||||||
import asyncio
 | 
					 | 
				
			||||||
import aiohttp
 | 
					 | 
				
			||||||
import urllib.parse
 | 
					 | 
				
			||||||
from threading import Thread
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RulingsObject(FoundationObject):
 | 
					class RulingsObject(FoundationObject):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Master class for all rulings objects.
 | 
					    Master class for all rulings objects.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Positional arguments:
 | 
					    Args:
 | 
				
			||||||
        No arguments required.
 | 
					        format (string, optional): Returns data in the specified method. Defaults to JSON.
 | 
				
			||||||
 | 
					        face (string, optional): 
 | 
				
			||||||
 | 
					            If you're using the `image` format, this will specify if you want the front or back face.
 | 
				
			||||||
 | 
					        version (string, optional):
 | 
				
			||||||
 | 
					            If you're using the `image` format, this will specify if you want the small, normal, large, etc version of the image.
 | 
				
			||||||
 | 
					        pretty (string, optional):
 | 
				
			||||||
 | 
					            Returns a prettier version of the json object. Note that this may break functionality with Scrython.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Optional arguments:
 | 
					 | 
				
			||||||
        format : str ... Returns data in the specified method. Defaults to JSON.
 | 
					 | 
				
			||||||
        face : str ... If you're using the `image` format, this will specify if
 | 
					 | 
				
			||||||
                        you want the front or back face.
 | 
					 | 
				
			||||||
        version : str ... If you're using the `image` format, this will specify if
 | 
					 | 
				
			||||||
                        you want the small, normal, large, etc version of the image.
 | 
					 | 
				
			||||||
        pretty : str ... Returns a prettier version of the json object. Note that
 | 
					 | 
				
			||||||
                          this may break functionality with Scrython.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Attributes:
 | 
					 | 
				
			||||||
        object : str ...... Returns the type of object it is. (card, error, etc)
 | 
					 | 
				
			||||||
        had_more : bool ... If true, this ruling object has more rules than it currently displays.
 | 
					 | 
				
			||||||
        data : list .................................. A list of ruling objects.
 | 
					 | 
				
			||||||
        data_length : int ....................... The length of the `data` list.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        The following require an integer as an arg, which acts as a tuple.
 | 
					 | 
				
			||||||
        ruling_object : str ............. The type of object for a given ruling.
 | 
					 | 
				
			||||||
        ruling_source : str .......................... The source of the ruling.
 | 
					 | 
				
			||||||
        ruling_published_at : str ...... The date when the ruling was published.
 | 
					 | 
				
			||||||
        ruling_comment : str ............................. The effective ruling.
 | 
					 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    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):
 | 
					 | 
				
			||||||
        if not key in self.scryfallJson[parent][num]:
 | 
					 | 
				
			||||||
            raise KeyError('This ruling has no key \'{}\''.format(key))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def object(self):
 | 
					    def object(self):
 | 
				
			||||||
        self._checkForKey('object')
 | 
					        """Returns the type of object it is
 | 
				
			||||||
 | 
					        (card, error, etc)
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Returns:
 | 
				
			||||||
 | 
					            string
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        super(RulingsObject, self)._checkForKey('object')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return self.scryfallJson['object']
 | 
					        return self.scryfallJson['object']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def has_more(self):
 | 
					    def has_more(self):
 | 
				
			||||||
        self._checkForKey('has_more')
 | 
					        """True if there is more than one page of results
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Returns:
 | 
				
			||||||
 | 
					            boolean: True if there are more results
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        super(RulingsObject, self)._checkForKey('has_more')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return self.scryfallJson['has_more']
 | 
					        return self.scryfallJson['has_more']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def data(self, index=None, key=None):
 | 
					    def data(self, index=None, key=None):
 | 
				
			||||||
        self._checkForKey('data')
 | 
					        """The data returned from the query
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Acceptable keys:
 | 
				
			||||||
 | 
					            object (string): The type of object for a given ruling.
 | 
				
			||||||
 | 
					            source (string): The source of the ruling.
 | 
				
			||||||
 | 
					            published_at (string): The date when the ruling was published.
 | 
				
			||||||
 | 
					            comment (string): The effective ruling.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Args:
 | 
				
			||||||
 | 
					            index (integer, optional): Defaults to None. Access a specific index.
 | 
				
			||||||
 | 
					            key (string, optional): Defaults to None. Returns the value of the given key. Requires the `index` argument.
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Returns:
 | 
				
			||||||
 | 
					            List: The full list of data.
 | 
				
			||||||
 | 
					            Dictionary: If given an index
 | 
				
			||||||
 | 
					            String: If given an index and key.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        super(RulingsObject, self)._checkForKey('data')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if index is not None:
 | 
					        if index is not None:
 | 
				
			||||||
            if key is not None:
 | 
					            if key is not None:
 | 
				
			||||||
                self._checkForTupleKey('data', index, key)
 | 
					                super(RulingsObject, self)._checkForTupleKey('data', index, key)
 | 
				
			||||||
                return self.scryfallJson['data'][index][key]
 | 
					                return self.scryfallJson['data'][index][key]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return self.scryfallJson['data'][index]
 | 
					            return self.scryfallJson['data'][index]
 | 
				
			||||||
| 
						 | 
					@ -66,26 +68,11 @@ class RulingsObject(FoundationObject):
 | 
				
			||||||
        return self.scryfallJson['data']
 | 
					        return self.scryfallJson['data']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def data_length(self):
 | 
					    def data_length(self):
 | 
				
			||||||
        self._checkForKey('data')
 | 
					        """The length of the `data` list.
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Returns:
 | 
				
			||||||
 | 
					            Integer
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        super(RulingsObject, self)._checkForKey('data')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return len(self.scryfallJson['data'])
 | 
					        return len(self.scryfallJson['data'])
 | 
				
			||||||
 | 
					 | 
				
			||||||
    def ruling_object(self, num):
 | 
					 | 
				
			||||||
        self._checkForTupleKey('data', num, 'object')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return self.scryfallJson['data'][num]['object']
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def ruling_source(self, num):
 | 
					 | 
				
			||||||
        self._checkForTupleKey('data', num, 'source')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return self.scryfallJson['data'][num]['source']
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def ruling_published_at(self, num):
 | 
					 | 
				
			||||||
        self._checkForTupleKey('data', num, 'published_at')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return self.scryfallJson['data'][num]['published_at']
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def ruling_comment(self, num):
 | 
					 | 
				
			||||||
        self._checkForTupleKey('data', num, 'comment')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return self.scryfallJson['data'][num]['comment']
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,14 +6,15 @@ class Id(RulingsObject):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Gets the ruling of a card by the Scryfall Id.
 | 
					    Gets the ruling of a card by the Scryfall Id.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Positional arguments:
 | 
					    Args:
 | 
				
			||||||
        id : str ...................... The id of the card you want rulings for.
 | 
					        id (string): The id of the card you want rulings for.
 | 
				
			||||||
 | 
					        format (string, optional): Returns data in the specified method. Defaults to JSON.
 | 
				
			||||||
    Optional arguments:
 | 
					        face (string, optional): 
 | 
				
			||||||
        All arguments inherited from RulingsObject
 | 
					            If you're using the `image` format, this will specify if you want the front or back face.
 | 
				
			||||||
 | 
					        version (string, optional):
 | 
				
			||||||
    Attributes:
 | 
					            If you're using the `image` format, this will specify if you want the small, normal, large, etc version of the image.
 | 
				
			||||||
        All attributes inherited from RulingsObject
 | 
					        pretty (string, optional):
 | 
				
			||||||
 | 
					            Returns a prettier version of the json object. Note that this may break functionality with Scrython.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Example usage:
 | 
					    Example usage:
 | 
				
			||||||
        >>> rule = scrython.rulings.Id(id='5976c352-ac49-4e0d-a4c0-ec9b6b78db9c')
 | 
					        >>> rule = scrython.rulings.Id(id='5976c352-ac49-4e0d-a4c0-ec9b6b78db9c')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,15 +6,16 @@ class Code(RulingsObject):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Gets the ruling of a card by the set and collector number.
 | 
					    Gets the ruling of a card by the set and collector number.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Positional arguments:
 | 
					    Args:
 | 
				
			||||||
        set : str ...... The 3 letter set code of the card you want rulings for.
 | 
					        set (string): The 3 letter set code of the card you want rulings for.
 | 
				
			||||||
        collector_number : ................... The collector number of the card.
 | 
					        collector_number (string): The collector number of the card.
 | 
				
			||||||
 | 
					        format (string, optional): Returns data in the specified method. Defaults to JSON.
 | 
				
			||||||
    Optional arguments:
 | 
					        face (string, optional): 
 | 
				
			||||||
        All arguments inherited from RulingsObject
 | 
					            If you're using the `image` format, this will specify if you want the front or back face.
 | 
				
			||||||
 | 
					        version (string, optional):
 | 
				
			||||||
    Attributes:
 | 
					            If you're using the `image` format, this will specify if you want the small, normal, large, etc version of the image.
 | 
				
			||||||
        All attributes inherited from RulingsObject
 | 
					        pretty (string, optional):
 | 
				
			||||||
 | 
					            Returns a prettier version of the json object. Note that this may break functionality with Scrython.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Example usage:
 | 
					    Example usage:
 | 
				
			||||||
        >>> rule = scrython.rulings.Code(code='ddg', collector_number='42')
 | 
					        >>> rule = scrython.rulings.Code(code='ddg', collector_number='42')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue