Skip to content

Commit 380b7cb

Browse files
committed
Rough draft of arrow.zone()
1 parent 2ca08e6 commit 380b7cb

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

arrow/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from ._version import __version__
2-
from .api import get, now, utcnow
2+
from .api import get, now, utcnow, zone
33
from .arrow import Arrow
44
from .factory import ArrowFactory
55
from .formatter import (
@@ -23,6 +23,7 @@
2323
"get",
2424
"now",
2525
"utcnow",
26+
"zone",
2627
"Arrow",
2728
"ArrowFactory",
2829
"FORMAT_ATOM",

arrow/api.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
from time import struct_time
1010
from typing import Any, List, Optional, Tuple, Type, Union, overload
1111

12+
from dateutil import tz as dateutil_tz
13+
1214
from arrow.arrow import TZ_EXPR, Arrow
1315
from arrow.constants import DEFAULT_LOCALE
1416
from arrow.factory import ArrowFactory
@@ -112,6 +114,10 @@ def now(tz: Optional[TZ_EXPR] = None) -> Arrow:
112114
now.__doc__ = _factory.now.__doc__
113115

114116

117+
def zone(zone_name: str) -> dateutil_tz:
118+
return _factory.zone(zone_name)
119+
120+
115121
def factory(type: Type[Arrow]) -> ArrowFactory:
116122
"""Returns an :class:`.ArrowFactory` for the specified :class:`Arrow <arrow.arrow.Arrow>`
117123
or derived type.
@@ -123,4 +129,4 @@ def factory(type: Type[Arrow]) -> ArrowFactory:
123129
return ArrowFactory(type)
124130

125131

126-
__all__ = ["get", "utcnow", "now", "factory"]
132+
__all__ = ["get", "utcnow", "now", "factory", "zone"]

arrow/factory.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,3 +343,10 @@ def now(self, tz: Optional[TZ_EXPR] = None) -> Arrow:
343343
tz = parser.TzinfoParser.parse(tz)
344344

345345
return self.type.now(tz)
346+
347+
@staticmethod
348+
def zone(zone_name: str) -> dateutil_tz:
349+
"""docstring here"""
350+
zone = parser.TzinfoParser.parse(zone_name)
351+
352+
return zone

0 commit comments

Comments
 (0)