ezKit 1.11.6__py3-none-any.whl → 1.11.7__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
ezKit/utils.py CHANGED
@@ -1,6 +1,5 @@
1
1
  """Utils"""
2
2
  import csv
3
- import datetime
4
3
  import hashlib
5
4
  import json
6
5
  import os
@@ -9,6 +8,7 @@ import time
9
8
  import tomllib
10
9
  from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor
11
10
  from copy import deepcopy
11
+ from datetime import date, datetime, timedelta, timezone
12
12
  from itertools import islice
13
13
  from pathlib import Path
14
14
  from shutil import rmtree
@@ -806,20 +806,20 @@ def retry(func: Callable, times: int = 3, **kwargs) -> Any:
806
806
 
807
807
 
808
808
  def date_to_datetime(
809
- date_object: datetime.datetime
810
- ) -> datetime.datetime | None:
809
+ date_object: datetime
810
+ ) -> datetime | None:
811
811
  """'日期'转换为'日期时间'"""
812
812
  # https://stackoverflow.com/a/1937636
813
813
  try:
814
- return datetime.datetime.combine(date_object, datetime.datetime.min.time())
814
+ return datetime.combine(date_object, datetime.min.time())
815
815
  except Exception as e:
816
816
  logger.exception(e)
817
817
  return None
818
818
 
819
819
 
820
820
  def datetime_to_date(
821
- datetime_instance: datetime.datetime
822
- ) -> datetime.date | None:
821
+ datetime_instance: datetime
822
+ ) -> date | None:
823
823
  """'日期时间'转换为'日期'"""
824
824
  # https://stackoverflow.com/a/3743240
825
825
  try:
@@ -831,25 +831,25 @@ def datetime_to_date(
831
831
 
832
832
  def local_timezone():
833
833
  """获取当前时区"""
834
- return datetime.datetime.now(datetime.timezone.utc).astimezone().tzinfo
834
+ return datetime.now(timezone.utc).astimezone().tzinfo
835
835
 
836
836
 
837
- def datetime_now(**kwargs) -> datetime.datetime | None:
837
+ def datetime_now(**kwargs) -> datetime | None:
838
838
  """获取当前日期和时间"""
839
839
  utc = kwargs.pop("utc", False)
840
840
  try:
841
841
  if isTrue(utc, bool):
842
- return datetime.datetime.now(datetime.timezone.utc)
843
- return datetime.datetime.now(**kwargs)
842
+ return datetime.now(timezone.utc)
843
+ return datetime.now(**kwargs)
844
844
  except Exception as e:
845
845
  logger.exception(e)
846
846
  return None
847
847
 
848
848
 
849
849
  def datetime_offset(
850
- datetime_instance: datetime.datetime | None = None,
850
+ datetime_instance: datetime | None = None,
851
851
  **kwargs
852
- ) -> datetime.datetime | None:
852
+ ) -> datetime | None:
853
853
  """
854
854
  获取 '向前或向后特定日期时间' 的日期和时间
855
855
 
@@ -857,13 +857,13 @@ def datetime_offset(
857
857
  """
858
858
  _utc = kwargs.pop("utc", False)
859
859
  try:
860
- if isinstance(datetime_instance, datetime.datetime):
861
- return datetime_instance + datetime.timedelta(**kwargs)
860
+ if isinstance(datetime_instance, datetime):
861
+ return datetime_instance + timedelta(**kwargs)
862
862
 
863
863
  if _utc is True:
864
- return datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(**kwargs)
864
+ return datetime.now(timezone.utc) + timedelta(**kwargs)
865
865
 
866
- return datetime.datetime.now() + datetime.timedelta(**kwargs)
866
+ return datetime.now() + timedelta(**kwargs)
867
867
 
868
868
  except Exception as e:
869
869
  logger.exception(e)
@@ -871,21 +871,21 @@ def datetime_offset(
871
871
 
872
872
 
873
873
  def datetime_to_string(
874
- datetime_instance: datetime.datetime,
874
+ datetime_instance: datetime,
875
875
  string_format: str = '%Y-%m-%d %H:%M:%S'
876
876
  ) -> str | None:
877
877
  """'日期时间'转换为'字符串'"""
878
878
  try:
879
- if not isTrue(datetime_instance, datetime.datetime):
879
+ if not isTrue(datetime_instance, datetime):
880
880
  return None
881
- return datetime.datetime.strftime(datetime_instance, string_format)
881
+ return datetime.strftime(datetime_instance, string_format)
882
882
  except Exception as e:
883
883
  logger.exception(e)
884
884
  return None
885
885
 
886
886
 
887
887
  def datetime_to_timestamp(
888
- datetime_instance: datetime.datetime = datetime.datetime.now(),
888
+ datetime_instance: datetime,
889
889
  utc: bool = False
890
890
  ) -> int | None:
891
891
  """
@@ -894,43 +894,43 @@ def datetime_to_timestamp(
894
894
  UTC datetime 需要先替换 timezone 再转换为 Unix Timestamp
895
895
  """
896
896
  try:
897
- if not isTrue(datetime_instance, datetime.datetime):
897
+ if not isTrue(datetime_instance, datetime):
898
898
  return None
899
- return int(datetime_instance.replace(tzinfo=datetime.timezone.utc).timestamp()) if utc is True else int(datetime_instance.timestamp())
899
+ return int(datetime_instance.replace(tzinfo=timezone.utc).timestamp()) if utc is True else int(datetime_instance.timestamp())
900
900
  except Exception as e:
901
901
  logger.exception(e)
902
902
  return None
903
903
 
904
904
 
905
905
  def datetime_local_to_timezone(
906
- datetime_instance: datetime.datetime,
907
- tz: datetime.timezone = datetime.timezone.utc
908
- ) -> datetime.datetime | None:
906
+ datetime_instance: datetime,
907
+ tz: timezone = timezone.utc
908
+ ) -> datetime | None:
909
909
  """
910
910
  Local datetime to TimeZone datetime(默认转换为 UTC datetime)
911
911
  replace(tzinfo=None) 移除结尾的时区信息
912
912
  """
913
913
  try:
914
- if not isTrue(datetime_instance, datetime.datetime):
914
+ if not isTrue(datetime_instance, datetime):
915
915
  return None
916
- return (datetime.datetime.fromtimestamp(datetime_instance.timestamp(), tz=tz)).replace(tzinfo=None)
916
+ return (datetime.fromtimestamp(datetime_instance.timestamp(), tz=tz)).replace(tzinfo=None)
917
917
  except Exception as e:
918
918
  logger.exception(e)
919
919
  return None
920
920
 
921
921
 
922
922
  def datetime_utc_to_timezone(
923
- datetime_instance: datetime.datetime,
924
- tz: Any = datetime.datetime.now(datetime.timezone.utc).astimezone().tzinfo
925
- ) -> datetime.datetime | None:
923
+ datetime_instance: datetime,
924
+ tz: Any = datetime.now(timezone.utc).astimezone().tzinfo
925
+ ) -> datetime | None:
926
926
  """
927
927
  UTC datetime to TimeZone datetime(默认转换为 Local datetime)
928
928
  replace(tzinfo=None) 移除结尾的时区信息
929
929
  """
930
930
  try:
931
- if not isTrue(datetime_instance, datetime.datetime):
931
+ if not isTrue(datetime_instance, datetime):
932
932
  return None
933
- return datetime_instance.replace(tzinfo=datetime.timezone.utc).astimezone(tz).replace(tzinfo=None)
933
+ return datetime_instance.replace(tzinfo=timezone.utc).astimezone(tz).replace(tzinfo=None)
934
934
 
935
935
  except Exception as e:
936
936
  logger.exception(e)
@@ -939,13 +939,13 @@ def datetime_utc_to_timezone(
939
939
 
940
940
  def timestamp_to_datetime(
941
941
  timestamp: int,
942
- tz: datetime.timezone = datetime.timezone.utc
943
- ) -> datetime.datetime | None:
942
+ tz: timezone = timezone.utc
943
+ ) -> datetime | None:
944
944
  """Unix Timestamp 转换为 Datatime"""
945
945
  try:
946
946
  if not isTrue(timestamp, int):
947
947
  return None
948
- return (datetime.datetime.fromtimestamp(timestamp, tz=tz)).replace(tzinfo=None)
948
+ return (datetime.fromtimestamp(timestamp, tz=tz)).replace(tzinfo=None)
949
949
  except Exception as e:
950
950
  logger.exception(e)
951
951
  return None
@@ -954,12 +954,12 @@ def timestamp_to_datetime(
954
954
  def datetime_string_to_datetime(
955
955
  datetime_string: str,
956
956
  datetime_format: str = '%Y-%m-%d %H:%M:%S'
957
- ) -> datetime.datetime | None:
957
+ ) -> datetime | None:
958
958
  """datetime string to datetime"""
959
959
  try:
960
960
  if not isTrue(datetime_string, str):
961
961
  return None
962
- return datetime.datetime.strptime(datetime_string, datetime_format)
962
+ return datetime.strptime(datetime_string, datetime_format)
963
963
  except Exception as e:
964
964
  logger.exception(e)
965
965
  return None
@@ -980,7 +980,7 @@ def datetime_string_to_timestamp(
980
980
 
981
981
 
982
982
  def datetime_object(
983
- date_time: datetime.datetime
983
+ date_time: datetime
984
984
  ) -> dict | None:
985
985
  """datetime object"""
986
986
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ezKit
3
- Version: 1.11.6
3
+ Version: 1.11.7
4
4
  Summary: Easy Kit
5
5
  Author: septvean
6
6
  Author-email: septvean@gmail.com
@@ -10,10 +10,10 @@ ezKit/qywx.py,sha256=dGChIIf2V81MwufcPn6hwgSenPuxqK994KRH7ECT-CM,10387
10
10
  ezKit/redis.py,sha256=tdiqfizPYQQTIUumkJGUJsJVlv0zVTSTYGQN0QutYs4,1963
11
11
  ezKit/sendemail.py,sha256=47JTDFoLJKi0YtF3RAp9nFfo0ko2jlde3R_C1wr2E2w,7397
12
12
  ezKit/token.py,sha256=HKREyZj_T2S8-aFoFIrBXTaCKExQq4zE66OHXhGHqQg,1750
13
- ezKit/utils.py,sha256=PtisdmXwycGM-xpYHIF3I6-DxwPBVv9k2KEsxWwzw8E,42491
13
+ ezKit/utils.py,sha256=dekBdpnPB9hQmYPQM0M22cAbfukU3lrckzPLmLemP3s,42092
14
14
  ezKit/xftp.py,sha256=izUH9pLH_AzgR3c0g8xSfhLn7LQ9EDcTst3LFjTM6hU,7878
15
- ezKit-1.11.6.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
16
- ezKit-1.11.6.dist-info/METADATA,sha256=ogHdc9037hfiR6Cxv0QzqdMlaKeysjnTmfSoUVUR68s,191
17
- ezKit-1.11.6.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
18
- ezKit-1.11.6.dist-info/top_level.txt,sha256=aYLB_1WODsqNTsTFWcKP-BN0KCTKcV-HZJ4zlHkCFw8,6
19
- ezKit-1.11.6.dist-info/RECORD,,
15
+ ezKit-1.11.7.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
16
+ ezKit-1.11.7.dist-info/METADATA,sha256=I9K9JrVBKo2UBSG6foVN1MLzN1jHyWXZECEVAWpQdsU,191
17
+ ezKit-1.11.7.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
18
+ ezKit-1.11.7.dist-info/top_level.txt,sha256=aYLB_1WODsqNTsTFWcKP-BN0KCTKcV-HZJ4zlHkCFw8,6
19
+ ezKit-1.11.7.dist-info/RECORD,,
File without changes