def weather(self, latitude=None, longitude=None, date=None):<EOL>
<EOL>if latitude is None:<EOL><INDENT>if self.latitude is None:<EOL><INDENT>raise TypeError("<STR_LIT>")<EOL><DEDENT><DEDENT>else:<EOL><INDENT>self.latitude = latitude<EOL><DEDENT>if longitude is None:<EOL><INDENT>if self.longitude is None:<EOL><INDENT>raise TypeError("<STR_LIT>")<EOL><DEDENT><DEDENT>else:<EOL><INDENT>self.longitude = longitude<EOL><DEDENT>self._date = date<EOL>url = self.url<EOL>log.debug(url)<EOL>self._response = requests.get(url, headers={"<STR_LIT>": "<STR_LIT>"}, timeout=<NUM_LIT:5>)<EOL>self._response.raise_for_status()<EOL>self._weather = Weather(self._response.text)<EOL>return self._weather<EOL>
:param float latitude: Locations latitude
:param float longitude: Locations longitude
:param datetime or str or int date: Date/time for historical weather data

:raises requests.exceptions.HTTPError: Raises on bad http response
:raises TypeError: Raises on invalid param types

:rtype: Weather

Example uses

.. code-block:: python

    # DarkSky instantiation
    >>> darksky = pydarksky.DarkSky(api_key)

    # Pre-define values
    >>> darksky.latitude = -34.9285
    >>> darksky.longitude = 138.6005
    >>> weather = darksky.weather()

    # Pass values as params
    >>> weather = darksky.weather(latitude=-34.9285, longitude=138.6005)

    # Pass values from dict
    >>> kwargs = {"longitude": 138.6005, "latitude": -34.9285}
    >>> weather = darksky.weather(**kwargs)