Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 82 additions & 2 deletions pdm.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,25 @@ dev = [
"pytest~=8.0.2",
"ubump~=0.1.15; python_version >= '3.11'",
"requests>=2.31.0",
"mypy>=1.11.2",
"types-requests>=2.32.0.20240712",
]

[tool.pytest.ini_options]
pythonpath = "src"

[tool.ubump]
template = "v${major}.${minor}.${patch}"
message = "Bump to ${version}"
tag = true
files = ["src/snowflake/__init__.py"]

[tool.mypy]
strict = true
show_error_context = true
disallow_untyped_defs = true
warn_redundant_casts = true
warn_unused_ignores = true
check_untyped_defs = true
disallow_subclassing_any = true
exclude = ["^tests/"]
2 changes: 0 additions & 2 deletions pytest.ini

This file was deleted.

2 changes: 1 addition & 1 deletion src/snowflake/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@
__version__ = VERSION


def version():
def version() -> str:
return VERSION
Empty file added src/snowflake/py.typed
Empty file.
14 changes: 7 additions & 7 deletions src/snowflake/snowflake.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from dataclasses import dataclass
from time import time
from typing import Optional
from datetime import datetime, timedelta, tzinfo
from datetime import datetime as dt, timedelta, tzinfo

__all__ = ('Snowflake', 'SnowflakeGenerator', 'MAX_TS', 'MAX_INSTANCE', 'MAX_SEQ')

Expand All @@ -22,7 +22,7 @@ class Snowflake:
epoch: int = 0
seq: int = 0

def __post_init__(self):
def __post_init__(self) -> None:
if self.epoch < 0:
raise ValueError("epoch must not be negative!")

Expand Down Expand Up @@ -53,11 +53,11 @@ def seconds(self) -> float:
return self.milliseconds / 1000

@property
def datetime(self) -> datetime:
return datetime.utcfromtimestamp(self.seconds)
def datetime(self) -> dt:
return dt.utcfromtimestamp(self.seconds)

def datetime_tz(self, tz: Optional[tzinfo] = None) -> datetime:
return datetime.fromtimestamp(self.seconds, tz=tz)
def datetime_tz(self, tz: Optional[tzinfo] = None) -> dt:
return dt.fromtimestamp(self.seconds, tz=tz)

@property
def timedelta(self) -> timedelta:
Expand Down Expand Up @@ -108,7 +108,7 @@ def from_snowflake(cls, sf: Snowflake) -> 'SnowflakeGenerator':
def epoch(self) -> int:
return self._epo

def __iter__(self):
def __iter__(self) -> 'SnowflakeGenerator':
return self

def __next__(self) -> Optional[int]:
Expand Down
4 changes: 2 additions & 2 deletions tools/create_release.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import requests


def create_release(token: str, repo: str, release: str, body: str):
def create_release(token: str, repo: str, release: str, body: str) -> None:
response = requests.post(f"https://api.github.com/repos/{repo}/releases",
headers={"Authorization": f"Bearer {token}"},
json={"tag_name": release, "name": release, "body": body})
Expand All @@ -13,7 +13,7 @@ def create_release(token: str, repo: str, release: str, body: str):
sys.exit(-1)


def main():
def main() -> None:
try:
token, repo, release, body_file = sys.argv[1:]
except ValueError:
Expand Down