diff --git a/src/astral/__init__.py b/src/astral/__init__.py index 0acaa19..46c4adc 100644 --- a/src/astral/__init__.py +++ b/src/astral/__init__.py @@ -51,7 +51,7 @@ try: import zoneinfo except ImportError: - from backports import zoneinfo + from backports import zoneinfo # type: ignore __all__ = [ diff --git a/src/astral/__main__.py b/src/astral/__main__.py index a6218b3..9aa8f51 100644 --- a/src/astral/__main__.py +++ b/src/astral/__main__.py @@ -8,7 +8,7 @@ try: import zoneinfo except ImportError: - from backports import zoneinfo + from backports import zoneinfo # type: ignore options = argparse.ArgumentParser() options.add_argument( @@ -54,20 +54,19 @@ sun_as_str = {} format_str = "%Y-%m-%dT%H:%M:%S" if args.tzname is None: - tzinfo = datetime.timezone.utc + kwargs["tzinfo"] = datetime.timezone.utc format_str += "Z" else: - tzinfo = zoneinfo.ZoneInfo(loc.timezone) + kwargs["tzinfo"] = zoneinfo.ZoneInfo(loc.timezone) format_str += "%z" -kwargs["tzinfo"] = tzinfo s = sun.sun(**kwargs) for key, value in s.items(): sun_as_str[key] = s[key].strftime(format_str) -sun_as_str["timezone"] = tzinfo.tzname +sun_as_str["timezone"] = kwargs["tzinfo"].tzname sun_as_str["location"] = f"{loc.name}, {loc.region}" print(json.dumps(sun_as_str)) diff --git a/src/astral/julian.py b/src/astral/julian.py index 21d339f..dd5d481 100644 --- a/src/astral/julian.py +++ b/src/astral/julian.py @@ -32,12 +32,12 @@ def _time_to_seconds(t: datetime.time) -> int: year = at.year month = at.month day = at.day - day_fraction = 0 + day_fraction = 0.0 if isinstance(at, datetime.datetime): t = _time_to_seconds(at.time()) day_fraction = t / (24 * 60 * 60) else: - day_fraction = 0 + day_fraction = 0.0 if month <= 2: year -= 1 @@ -102,7 +102,7 @@ def julianday_to_datetime(jd: float) -> datetime.datetime: d = int(365.25 * c) e = int((b - d) / 30.6001) - d = b - d - int(30.6001 * e) + f + d = b - d - int(30.6001 * e) + f # type: ignore day = int(d) t = d - day total_seconds = t * (24 * 60 * 60) diff --git a/src/astral/location.py b/src/astral/location.py index 86de835..2162280 100644 --- a/src/astral/location.py +++ b/src/astral/location.py @@ -4,7 +4,7 @@ try: import zoneinfo except ImportError: - from backports import zoneinfo + from backports import zoneinfo # type: ignore from typing import Any, Dict, Optional, Tuple, Union diff --git a/src/astral/moon.py b/src/astral/moon.py index 0848b0d..b2f3691 100644 --- a/src/astral/moon.py +++ b/src/astral/moon.py @@ -15,7 +15,7 @@ try: import zoneinfo except ImportError: - from backports import zoneinfo + from backports import zoneinfo # type: ignore from astral import AstralBodyPosition, Observer, now, today from astral.julian import julianday, julianday_2000 diff --git a/src/astral/sun.py b/src/astral/sun.py index 0d2a759..2b53c0b 100644 --- a/src/astral/sun.py +++ b/src/astral/sun.py @@ -5,7 +5,7 @@ try: import zoneinfo except ImportError: - from backports import zoneinfo + from backports import zoneinfo # type: ignore from astral import ( Depression, @@ -444,7 +444,7 @@ def noon( second, tzinfo=datetime.timezone.utc, ) - return noon.astimezone(tzinfo) # type: ignore pylint: disable=E1120 + return noon.astimezone(tzinfo) # type: ignore # pylint: disable=E1120 def midnight( diff --git a/src/docs/conf.py b/src/docs/conf.py index 75020a9..7c3d202 100644 --- a/src/docs/conf.py +++ b/src/docs/conf.py @@ -26,7 +26,6 @@ source_suffix = ".rst" master_doc = "index" -exclude_trees = [] pygments_style = "sphinx" diff --git a/src/test/conftest.py b/src/test/conftest.py index d2037e0..d3a8825 100644 --- a/src/test/conftest.py +++ b/src/test/conftest.py @@ -1,4 +1,4 @@ -import pytest +import pytest # type: ignore from astral import LocationInfo from astral.geocoder import LocationDatabase, database diff --git a/src/test/moon/test_moon.py b/src/test/moon/test_moon.py index 02f2650..79662fa 100644 --- a/src/test/moon/test_moon.py +++ b/src/test/moon/test_moon.py @@ -1,13 +1,7 @@ # -*- coding: utf-8 -*- import datetime -import pytest - -try: - import zoneinfo -except ImportError: - from backports import zoneinfo - +import pytest # type: ignore from almost_equal import datetime_almost_equal from astral import moon @@ -107,8 +101,8 @@ def test_moonset_riyadh_utc( def test_moonrise_wellington( date_: datetime.date, risetime: datetime.datetime, wellington: Location ): - risetime = risetime.replace(tzinfo=wellington.tz) - calc_time = moon.moonrise(wellington.observer, date_, tzinfo=wellington.tz) + risetime = risetime.replace(tzinfo=wellington.tzinfo) + calc_time = moon.moonrise(wellington.observer, date_, tzinfo=wellington.tzinfo) assert calc_time is not None calc_time = calc_time.astimezone(wellington.tzinfo) assert datetime_almost_equal(calc_time, risetime, seconds=120) diff --git a/src/test/moon/test_moon_azimuth.py b/src/test/moon/test_moon_azimuth.py index 64b64f0..007080a 100644 --- a/src/test/moon/test_moon_azimuth.py +++ b/src/test/moon/test_moon_azimuth.py @@ -1,6 +1,6 @@ import datetime -import pytest +import pytest # type: ignore from astral import Observer from astral.location import Location diff --git a/src/test/moon/test_moon_position.py b/src/test/moon/test_moon_position.py index b844511..a3e1598 100644 --- a/src/test/moon/test_moon_position.py +++ b/src/test/moon/test_moon_position.py @@ -7,12 +7,12 @@ def test_moon_position(): d = date(1969, 6, 28) jd = julianday(d) jd2000 = jd - 2451545 # Julian day relative to Jan 1.5, 2000 - _pos1 = moon_position(jd2000) + moon_position(jd2000) d = date(1992, 4, 12) jd = julianday(d) jd2000 = jd - 2451545 # Julian day relative to Jan 1.5, 2000 - _pos2 = moon_position(jd2000) + moon_position(jd2000) pass diff --git a/src/test/test_Location.py b/src/test/test_Location.py index a0c4906..bc7ef86 100644 --- a/src/test/test_Location.py +++ b/src/test/test_Location.py @@ -5,10 +5,10 @@ try: import zoneinfo except ImportError: - from backports import zoneinfo + from backports import zoneinfo # type: ignore import freezegun -import pytest +import pytest # type: ignore from almost_equal import datetime_almost_equal from astral import LocationInfo @@ -57,13 +57,13 @@ def test_Info(self, london: Location, london_info: LocationInfo): def test_Sun(self, london: Location): """Test Location's version of the sun calculation""" - ldt = datetime.datetime(2015, 8, 1, 5, 23, 20, tzinfo=london.tz) + ldt = datetime.datetime(2015, 8, 1, 5, 23, 20, tzinfo=london.tzinfo) sunrise = london.sun(datetime.date(2015, 8, 1))["sunrise"] assert datetime_almost_equal(sunrise, ldt) def test_Dawn(self, london: Location): """Test Location returns dawn times in the local timezone""" - ldt = datetime.datetime(2015, 8, 1, 4, 41, 44, tzinfo=london.tz) + ldt = datetime.datetime(2015, 8, 1, 4, 41, 44, tzinfo=london.tzinfo) dawn = london.dawn(datetime.date(2015, 8, 1)) assert datetime_almost_equal(dawn, ldt) # assert dawn.tzinfo.zone == london.tzinfo.zone @@ -76,7 +76,7 @@ def test_DawnUTC(self, london: Location): # assert dawn.tzinfo.zone == datetime.timezone.utc.zone def test_Sunrise(self, london: Location): - ldt = datetime.datetime(2015, 8, 1, 5, 23, 20, tzinfo=london.tz) + ldt = datetime.datetime(2015, 8, 1, 5, 23, 20, tzinfo=london.tzinfo) sunrise = london.sunrise(datetime.date(2015, 8, 1)) assert datetime_almost_equal(sunrise, ldt) # assert sunrise.tzinfo.zone == london.tzinfo.zone @@ -88,7 +88,7 @@ def test_SunriseUTC(self, london: Location): # assert sunrise.tzinfo.zone == datetime.timezone.utc.zone def test_SolarNoon(self, london: Location): - ldt = datetime.datetime(2015, 8, 1, 13, 6, 53, tzinfo=london.tz) + ldt = datetime.datetime(2015, 8, 1, 13, 6, 53, tzinfo=london.tzinfo) noon = london.noon(datetime.date(2015, 8, 1)) assert datetime_almost_equal(noon, ldt) # assert noon.tzinfo.zone == london.tzinfo.zone @@ -100,7 +100,7 @@ def test_SolarNoonUTC(self, london: Location): # assert noon.tzinfo.zone == datetime.timezone.utc.zone def test_Dusk(self, london: Location): - ldt = datetime.datetime(2015, 12, 1, 16, 35, 11, tzinfo=london.tz) + ldt = datetime.datetime(2015, 12, 1, 16, 35, 11, tzinfo=london.tzinfo) dusk = london.dusk(datetime.date(2015, 12, 1)) assert datetime_almost_equal(dusk, ldt) # assert dusk.tzinfo.zone == london.tzinfo.zone @@ -112,7 +112,7 @@ def test_DuskUTC(self, london: Location): # assert dusk.tzinfo.zone == datetime.timezone.utc.zone def test_Sunset(self, london: Location): - ldt = datetime.datetime(2015, 12, 1, 15, 55, 29, tzinfo=london.tz) + ldt = datetime.datetime(2015, 12, 1, 15, 55, 29, tzinfo=london.tzinfo) sunset = london.sunset(datetime.date(2015, 12, 1)) assert datetime_almost_equal(sunset, ldt) # assert sunset.tzinfo.zone == london.tzinfo.zone @@ -124,12 +124,12 @@ def test_SunsetUTC(self, london: Location): # assert sunset.tzinfo.zone == datetime.timezone.utc.zone def test_SolarElevation(self, riyadh: Location): - dt = datetime.datetime(2015, 12, 14, 8, 0, 0, tzinfo=riyadh.tz) + dt = datetime.datetime(2015, 12, 14, 8, 0, 0, tzinfo=riyadh.tzinfo) elevation = riyadh.solar_elevation(dt) assert abs(elevation - 17) < 0.5 def test_SolarAzimuth(self, riyadh: Location): - dt = datetime.datetime(2015, 12, 14, 8, 0, 0, tzinfo=riyadh.tz) + dt = datetime.datetime(2015, 12, 14, 8, 0, 0, tzinfo=riyadh.tzinfo) azimuth = riyadh.solar_azimuth(dt) assert abs(azimuth - 126) < 0.5 @@ -137,7 +137,7 @@ def test_TimeAtAltitude(self, new_delhi: Location): test_data = {datetime.date(2016, 1, 5): datetime.datetime(2016, 1, 5, 10, 0)} for day, cdt in test_data.items(): - cdt = cdt.replace(tzinfo=new_delhi.tz) + cdt = cdt.replace(tzinfo=new_delhi.tzinfo) dt = new_delhi.time_at_elevation(28, day) assert datetime_almost_equal(dt, cdt, seconds=600) diff --git a/src/test/test_Repr.py b/src/test/test_Repr.py index b12ed94..0453073 100644 --- a/src/test/test_Repr.py +++ b/src/test/test_Repr.py @@ -5,15 +5,29 @@ class TestLocationRepr: def test_default(self): - l = Location() + location = Location() assert ( - l.__repr__() == "Greenwich/England, tz=Europe/London, lat=51.47, lon=-0.00" + location.__repr__() + == "Greenwich/England, tz=Europe/London, lat=51.47, lon=-0.00" ) def test_full(self): - l = Location(LocationInfo("London", "England", "Europe/London", 51.68, -0.05)) - assert l.__repr__() == "London/England, tz=Europe/London, lat=51.68, lon=-0.05" + location = Location( + LocationInfo("London", "England", "Europe/London", 51.68, -0.05) + ) + assert ( + location.__repr__() + == "London/England, tz=Europe/London, lat=51.68, lon=-0.05" + ) def test_no_region(self): - l = Location(LocationInfo("London", None, "Europe/London", 51.68, -0.05)) - assert l.__repr__() == "London, tz=Europe/London, lat=51.68, lon=-0.05" + location = Location( + LocationInfo( + "London", + None, + "Europe/London", + 51.68, + -0.05, + ) + ) + assert location.__repr__() == ("London, tz=Europe/London, lat=51.68, lon=-0.05") diff --git a/src/test/test_depression_not_reached.py b/src/test/test_depression_not_reached.py index 5d48b23..719c2ba 100644 --- a/src/test/test_depression_not_reached.py +++ b/src/test/test_depression_not_reached.py @@ -2,7 +2,7 @@ import datetime -import pytest +import pytest # type: ignore from astral import LocationInfo from astral.location import Location diff --git a/src/test/test_geocoder.py b/src/test/test_geocoder.py index 753b9d3..18900e2 100644 --- a/src/test/test_geocoder.py +++ b/src/test/test_geocoder.py @@ -5,7 +5,7 @@ try: import zoneinfo except ImportError: - from backports import zoneinfo + from backports import zoneinfo # type: ignore from pytest import approx, raises # type: ignore diff --git a/src/test/test_julian.py b/src/test/test_julian.py index c83df72..c457568 100644 --- a/src/test/test_julian.py +++ b/src/test/test_julian.py @@ -1,3 +1,4 @@ +# type: ignore import datetime from typing import Union diff --git a/src/test/test_location_info.py b/src/test/test_location_info.py index f0952e0..adf118b 100644 --- a/src/test/test_location_info.py +++ b/src/test/test_location_info.py @@ -1,3 +1,4 @@ +# type: ignore import pytest from astral import LocationInfo @@ -5,7 +6,7 @@ try: import zoneinfo except ImportError: - from backports import zoneinfo + from backports import zoneinfo # type: ignore class TestLocationInfo: diff --git a/src/test/test_misc.py b/src/test/test_misc.py index cc1a991..55c2cea 100644 --- a/src/test/test_misc.py +++ b/src/test/test_misc.py @@ -1,9 +1,10 @@ +# type: ignore from datetime import timedelta try: import zoneinfo except ImportError: - from backports import zoneinfo + from backports import zoneinfo # type: ignore import freezegun from pytest import approx, raises diff --git a/src/test/test_norway.py b/src/test/test_norway.py index a8df2ff..6e08d4a 100644 --- a/src/test/test_norway.py +++ b/src/test/test_norway.py @@ -1,6 +1,6 @@ from datetime import datetime, timedelta, timezone -import pytest +import pytest # type: ignore import astral from astral import sun diff --git a/src/test/test_observer.py b/src/test/test_observer.py index 7384b50..c1812a1 100644 --- a/src/test/test_observer.py +++ b/src/test/test_observer.py @@ -1,3 +1,4 @@ +# type: ignore import pytest from astral import Observer diff --git a/src/test/test_sun_calc.py b/src/test/test_sun_calc.py index 56e5517..2bfbc06 100644 --- a/src/test/test_sun_calc.py +++ b/src/test/test_sun_calc.py @@ -1,7 +1,7 @@ import datetime import freezegun -import pytest +import pytest # type: ignore from astral import Observer, sun, today from astral.location import Location @@ -40,7 +40,9 @@ def test_GeomAnomolyLongSun(jc: float, gmas: float): ], ) def test_EccentricityEarthOrbit(jc: float, eeo: float): - assert sun.eccentric_location_earth_orbit(jc) == pytest.approx(eeo, abs=1e-6) # type: ignore + assert sun.eccentric_location_earth_orbit(jc) == pytest.approx( + eeo, abs=1e-6 + ) # type: ignore @pytest.mark.parametrize( @@ -186,29 +188,39 @@ def test_HourAngle(d: datetime.date, ha: float, london: Location): def test_Azimuth(new_delhi: Location): d = datetime.datetime(2001, 6, 21, 13, 11, 0) - assert sun.azimuth(new_delhi.observer, d) == pytest.approx(292.76, abs=0.1) # type: ignore + assert sun.azimuth(new_delhi.observer, d) == pytest.approx( + 292.76, abs=0.1 + ) # type: ignore def test_Elevation(new_delhi: Location): d = datetime.datetime(2001, 6, 21, 13, 11, 0) - assert sun.elevation(new_delhi.observer, d) == pytest.approx(7.41, abs=0.1) # type: ignore + assert sun.elevation(new_delhi.observer, d) == pytest.approx( + 7.41, abs=0.1 + ) # type: ignore def test_Elevation_NonNaive(new_delhi: Location): - d = datetime.datetime(2001, 6, 21, 18, 41, 0, tzinfo=new_delhi.tz) - assert sun.elevation(new_delhi.observer, d) == pytest.approx(7.41, abs=0.1) # type: ignore + d = datetime.datetime(2001, 6, 21, 18, 41, 0, tzinfo=new_delhi.tzinfo) + assert sun.elevation(new_delhi.observer, d) == pytest.approx( + 7.41, abs=0.1 + ) # type: ignore def test_Elevation_WithoutRefraction(new_delhi: Location): d = datetime.datetime(2001, 6, 21, 13, 11, 0) - assert sun.elevation(new_delhi.observer, d, with_refraction=False) == pytest.approx( # type: ignore + assert sun.elevation( + new_delhi.observer, d, with_refraction=False + ) == pytest.approx( # type: ignore 7.29, abs=0.1 ) def test_Azimuth_Above85Degrees(): d = datetime.datetime(2001, 6, 21, 13, 11, 0) - assert sun.azimuth(Observer(86, 77.2), d) == pytest.approx(276.21, abs=0.1) # type: ignore + assert sun.azimuth(Observer(86, 77.2), d) == pytest.approx( + 276.21, abs=0.1 + ) # type: ignore def test_Elevation_Above85Degrees(): diff --git a/src/test/test_sun_elevation_adjustment.py b/src/test/test_sun_elevation_adjustment.py index 2510083..5a39fc6 100644 --- a/src/test/test_sun_elevation_adjustment.py +++ b/src/test/test_sun_elevation_adjustment.py @@ -1,13 +1,7 @@ # -*- coding: utf-8 -*- -from datetime import datetime +import pytest # type: ignore -import freezegun -import pytest -from almost_equal import datetime_almost_equal - -from astral.geocoder import database, lookup -from astral.location import Location -from astral.sun import adjust_to_horizon, adjust_to_obscuring_feature, sunrise +from astral.sun import adjust_to_horizon, adjust_to_obscuring_feature class TestElevationAdjustment: diff --git a/src/test/test_sun_golden_blue.py b/src/test/test_sun_golden_blue.py index 6d101dc..21ca092 100644 --- a/src/test/test_sun_golden_blue.py +++ b/src/test/test_sun_golden_blue.py @@ -4,7 +4,7 @@ import datetime import freezegun -import pytest +import pytest # type: ignore from almost_equal import datetime_almost_equal from astral import TimePeriod, sun @@ -40,7 +40,11 @@ def test_morning( start1 = golden_hour[0].replace(tzinfo=datetime.timezone.utc) end1 = golden_hour[1].replace(tzinfo=datetime.timezone.utc) - start2, end2 = sun.golden_hour(new_delhi.observer, day, SunDirection.RISING) + start2, end2 = sun.golden_hour( + new_delhi.observer, + day, + SunDirection.RISING, + ) assert datetime_almost_equal(end1, end2, seconds=90) assert datetime_almost_equal(start1, start2, seconds=90) @@ -56,7 +60,11 @@ def test_evening(self, london: Location): start1 = golden_hour[0].replace(tzinfo=datetime.timezone.utc) end1 = golden_hour[1].replace(tzinfo=datetime.timezone.utc) - start2, end2 = sun.golden_hour(london.observer, day, SunDirection.SETTING) + start2, end2 = sun.golden_hour( + london.observer, + day, + SunDirection.SETTING, + ) assert datetime_almost_equal(end1, end2, seconds=60) assert datetime_almost_equal(start1, start2, seconds=60) diff --git a/src/test/test_sun_local.py b/src/test/test_sun_local.py index f392c3c..e85fa60 100644 --- a/src/test/test_sun_local.py +++ b/src/test/test_sun_local.py @@ -1,6 +1,6 @@ import datetime -import pytest +import pytest # type: ignore from almost_equal import datetime_almost_equal from astral import sun diff --git a/src/test/test_sun_utc.py b/src/test/test_sun_utc.py index 5052abc..bdcfe6a 100644 --- a/src/test/test_sun_utc.py +++ b/src/test/test_sun_utc.py @@ -1,3 +1,4 @@ +# type: ignore # Test data taken from http://www.timeanddate.com/sun/uk/london import datetime @@ -361,7 +362,9 @@ def test_SolarAzimuth(dt: datetime.datetime, angle: float, london: LocationInfo) @freezegun.freeze_time("2015-12-14 11:00:00", tz_offset=0) def test_SolarAzimuth_NoDate(london: LocationInfo): - assert sun.azimuth(london.observer) == pytest.approx(166.9676, abs=0.5) # type: ignore + assert sun.azimuth(london.observer) == pytest.approx( + 166.9676, abs=0.5 + ) # type: ignore @pytest.mark.parametrize( diff --git a/src/test/test_value_error_bug.py b/src/test/test_value_error_bug.py index bf17bdd..488caef 100644 --- a/src/test/test_value_error_bug.py +++ b/src/test/test_value_error_bug.py @@ -14,7 +14,7 @@ def test_value_error_bug(): ) ob = loc.observer sun = astral.sun.sun(ob, date=datetime.date(2022, 7, 20)) - dawn = sun["dawn"] + sun["dawn"] if __name__ == "__main__": diff --git a/src/test/test_wellington.py b/src/test/test_wellington.py index cfdb5b4..e6e21ad 100644 --- a/src/test/test_wellington.py +++ b/src/test/test_wellington.py @@ -1,5 +1,4 @@ import datetime -from pprint import pprint from almost_equal import datetime_almost_equal