ddata 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
ddata-0.2.0/PKG-INFO ADDED
@@ -0,0 +1,38 @@
1
+ Metadata-Version: 2.1
2
+ Name: ddata
3
+ Version: 0.2.0
4
+ Summary: A Python data package
5
+ Home-page: https://github.com/flyphant/ddata
6
+ Author: flyphant
7
+ Author-email: 576938286@qq.com
8
+ License: UNKNOWN
9
+ Description: # ddata
10
+
11
+ #### 介绍
12
+ python 常用数据分析工具包
13
+
14
+
15
+ #### 安装教程
16
+ pip install ddata
17
+
18
+ #### 使用说明
19
+
20
+
21
+
22
+ #### 参与贡献
23
+
24
+
25
+
26
+
27
+ #### 特技
28
+
29
+
30
+
31
+ Keywords: python,package,sample
32
+ Platform: UNKNOWN
33
+ Classifier: Programming Language :: Python :: 3
34
+ Classifier: License :: OSI Approved :: MIT License
35
+ Classifier: Operating System :: OS Independent
36
+ Requires-Python: >=3.6, <4
37
+ Description-Content-Type: text/markdown
38
+ Provides-Extra: dev
ddata-0.2.0/README.md ADDED
@@ -0,0 +1,21 @@
1
+ # ddata
2
+
3
+ #### 介绍
4
+ python 常用数据分析工具包
5
+
6
+
7
+ #### 安装教程
8
+ pip install ddata
9
+
10
+ #### 使用说明
11
+
12
+
13
+
14
+ #### 参与贡献
15
+
16
+
17
+
18
+
19
+ #### 特技
20
+
21
+
@@ -0,0 +1,12 @@
1
+ from .date import DateUtil
2
+ date = DateUtil()
3
+
4
+ from .loggor import MyLoggor
5
+ log = MyLoggor()
6
+
7
+
8
+ # 将方法绑定到包级别,使得可以直接用包名调用
9
+ from.test import log_message
10
+ test = log_message
11
+
12
+
@@ -0,0 +1,148 @@
1
+ # -*- coding: utf-8 -*-
2
+ import datetime
3
+ import time
4
+
5
+
6
+ class DateUtil:
7
+ def __init__(self):
8
+ pass
9
+
10
+ @staticmethod
11
+ def date_2_hyphen_date(date):
12
+ """
13
+ 转成中划线日期
14
+ :param date:
15
+ :return:
16
+ """
17
+ res = date[0: 4] + '-' + date[4: 6] + '-'+date[6: 8]
18
+ return res
19
+
20
+ # 计算时间函数
21
+ @staticmethod
22
+ def timer(func):
23
+ def wrapper(*args, **kw):
24
+ start_time = time.time()
25
+ print(DateUtil.now(), '[%s] start to run program.........' % func.__name__)
26
+ ret = func(*args, **kw)
27
+ end_time = time.time()
28
+ # print(DateUtil.now(), "程序运行结束,共使用了{} 分钟".format(round((end_time - start_time) / 60, 2)))
29
+ print(DateUtil.now(), ' [%s] program is end, cost time: %.2f minute.........' % (func.__name__, round((end_time - start_time) / 60, 2)))
30
+ return ret
31
+
32
+ return wrapper
33
+
34
+ @staticmethod
35
+ def get_today():
36
+ formatter = "%Y%m%d"
37
+ today_val = datetime.date.today()
38
+ today = today_val.strftime(formatter)
39
+ return today
40
+
41
+ @staticmethod
42
+ def today(formatter):
43
+ """
44
+ 获取今天的日期的值
45
+ :param formatter: 日期的格式,默认为%Y%m%d,20170101
46
+ :return:
47
+ """
48
+ today_val = datetime.date.today()
49
+ if formatter is None or formatter == "":
50
+ formatter = "%Y%m%d"
51
+ today = today_val.strftime(formatter)
52
+ return today
53
+
54
+ @staticmethod
55
+ def yesterday(formatter=None):
56
+ today_val = datetime.date.today()
57
+ timedelta = datetime.timedelta(days=1)
58
+ yesterday_val = today_val - timedelta
59
+ if formatter is None or formatter == "":
60
+ formatter = "%Y%m%d"
61
+ yesterday = yesterday_val.strftime(formatter)
62
+ return yesterday
63
+
64
+ @staticmethod
65
+ def now():
66
+ """
67
+ 获取当前的时间
68
+ :param formatter: 时间的格式,比如%Y-%m-%d %H:%M:%S
69
+ :return:
70
+ """
71
+ formatter = "%Y-%m-%d %H:%M:%S.%f"
72
+ return datetime.datetime.now().strftime(formatter)[:-3]
73
+
74
+ @staticmethod
75
+ def formatter_now(formatter):
76
+ """
77
+ 获取当前的时间
78
+ :param formatter: 时间的格式,比如%Y-%m-%d %H:%M:%S
79
+ :return:
80
+ """
81
+ if formatter is None or formatter == "":
82
+ formatter = "%Y-%m-%d %H:%M:%S"
83
+
84
+ return time.strftime(formatter, time.localtime())
85
+
86
+ @staticmethod
87
+ def n_day_ago(date, n):
88
+ """
89
+ 获取n天之前的日期
90
+ :param date:
91
+ :param n:
92
+ :return:
93
+ """
94
+ if date is None or date == "":
95
+ date = datetime.date.today().strftime("%Y%m%d")
96
+
97
+ if n is None or n == "":
98
+ n = 1
99
+
100
+ one_day_ago = datetime.datetime.strptime(date, "%Y%m%d") + datetime.timedelta(
101
+ days=-n
102
+ )
103
+ return one_day_ago.strftime("%Y%m%d")
104
+
105
+ @staticmethod
106
+ def n_day_later(date, n):
107
+ """
108
+ 获取n天之后的日期
109
+ :param date:
110
+ :param n:
111
+ :return:
112
+ """
113
+ if date is None or date == "":
114
+ date = datetime.date.today().strftime("%Y%m%d")
115
+
116
+ if n is None or n == "":
117
+ n = 1
118
+
119
+ one_day_ago = datetime.datetime.strptime(date, "%Y%m%d") + datetime.timedelta(
120
+ days=n
121
+ )
122
+ return one_day_ago.strftime("%Y%m%d")
123
+
124
+ @staticmethod
125
+ def almost_n_month_ago(date, n):
126
+ """
127
+ 近似获取n月之前的日期,
128
+ :param date:
129
+ :param n:
130
+ :return:
131
+ """
132
+ if date is None or date == "":
133
+ date = datetime.date.today().strftime("%Y%m")
134
+
135
+ if n is None or n == "":
136
+ n = 1
137
+
138
+ date = date + "01"
139
+ one_day_ago = datetime.datetime.strptime(date, "%Y%m%d") + datetime.timedelta(
140
+ days=-n * 28
141
+ )
142
+ return one_day_ago.strftime("%Y%m")
143
+
144
+ @staticmethod
145
+ def timestamp_2_yyyy_mm(timestamp):
146
+ x = time.localtime(timestamp)
147
+ return time.strftime("%Y%m", x)
148
+
@@ -0,0 +1,30 @@
1
+ import logging.config
2
+
3
+
4
+ class MyLoggor():
5
+ # 配置日志记录器
6
+ logging.basicConfig(
7
+ level=logging.INFO,
8
+ format='%(asctime)s.%(msecs)03d %(levelname)s [%(threadName)s] %(message)s',
9
+ datefmt='%Y-%m-%d %H:%M:%S',
10
+ handlers=[logging.StreamHandler()]
11
+ )
12
+
13
+ def __get_logger(self):
14
+ logger = logging.getLogger(__name__)
15
+ return logger
16
+
17
+ def info(self, message):
18
+ self.__get_logger().info(message)
19
+
20
+ def warn(self, message):
21
+ self.__get_logger().warning(message)
22
+
23
+ def error(self):
24
+ self.__get_logger().error("hello")
25
+
26
+
27
+ if __name__ == "__main__":
28
+ log = MyLoggor()
29
+ log.info("hello")
30
+ print("hello")
@@ -0,0 +1,2 @@
1
+ def log_message(message):
2
+ print(f"Logging: {message}")
@@ -0,0 +1,38 @@
1
+ Metadata-Version: 2.1
2
+ Name: ddata
3
+ Version: 0.2.0
4
+ Summary: A Python data package
5
+ Home-page: https://github.com/flyphant/ddata
6
+ Author: flyphant
7
+ Author-email: 576938286@qq.com
8
+ License: UNKNOWN
9
+ Description: # ddata
10
+
11
+ #### 介绍
12
+ python 常用数据分析工具包
13
+
14
+
15
+ #### 安装教程
16
+ pip install ddata
17
+
18
+ #### 使用说明
19
+
20
+
21
+
22
+ #### 参与贡献
23
+
24
+
25
+
26
+
27
+ #### 特技
28
+
29
+
30
+
31
+ Keywords: python,package,sample
32
+ Platform: UNKNOWN
33
+ Classifier: Programming Language :: Python :: 3
34
+ Classifier: License :: OSI Approved :: MIT License
35
+ Classifier: Operating System :: OS Independent
36
+ Requires-Python: >=3.6, <4
37
+ Description-Content-Type: text/markdown
38
+ Provides-Extra: dev
@@ -0,0 +1,12 @@
1
+ README.md
2
+ setup.py
3
+ ddata/__init__.py
4
+ ddata/date.py
5
+ ddata/loggor.py
6
+ ddata/test.py
7
+ ddata.egg-info/PKG-INFO
8
+ ddata.egg-info/SOURCES.txt
9
+ ddata.egg-info/dependency_links.txt
10
+ ddata.egg-info/entry_points.txt
11
+ ddata.egg-info/requires.txt
12
+ ddata.egg-info/top_level.txt
@@ -0,0 +1,3 @@
1
+ [console_commands]
2
+ my_command = my_package.my_module:main_function
3
+
@@ -0,0 +1,4 @@
1
+ numpy
2
+
3
+ [dev]
4
+ pytest>=3.7
@@ -0,0 +1 @@
1
+ ddata
ddata-0.2.0/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
ddata-0.2.0/setup.py ADDED
@@ -0,0 +1,58 @@
1
+ from setuptools import setup, find_packages
2
+ import pathlib
3
+
4
+ # 获取当前目录
5
+ here = pathlib.Path(__file__).parent.resolve()
6
+
7
+ # 读取 README 文件内容作为长描述
8
+ long_description = (here / 'README.md').read_text(encoding='utf-8')
9
+
10
+ setup(
11
+ # 包名称
12
+ name='ddata',
13
+ # 版本号
14
+ version='0.2.0',
15
+ # 简短描述
16
+ description='A Python data package',
17
+ # 长描述,通常是 README 文件内容
18
+ long_description=long_description,
19
+ # 长描述内容类型
20
+ long_description_content_type='text/markdown',
21
+ # 项目主页(如果有)
22
+ url='https://github.com/flyphant/ddata',
23
+ # 作者信息
24
+ author='flyphant',
25
+ author_email='576938286@qq.com',
26
+ # 分类信息,用于 PyPI 上的分类搜索
27
+ classifiers=[
28
+ "Programming Language :: Python :: 3",
29
+ "License :: OSI Approved :: MIT License",
30
+ "Operating System :: OS Independent",
31
+ ],
32
+ # 自动发现包内的所有 Python 包
33
+ packages=find_packages(),
34
+ # Python 版本要求
35
+ python_requires='>=3.6, <4',
36
+ # 安装时需要安装的依赖包
37
+ install_requires=[
38
+ 'numpy',
39
+ ],
40
+ # 可选的额外依赖,用于不同的功能或场景
41
+ extras_require={
42
+ 'dev': ['pytest>=3.7'],
43
+ },
44
+ # 包数据,例如包含一些非 Python 文件(如果有)
45
+ package_data={
46
+ 'my_package': ['data/*.txt'],
47
+ },
48
+ # 数据文件,会被安装到指定的目录(如果有)
49
+ # data_files=[('my_package_data', ['data/file1.txt', 'data/file2.txt'])],
50
+ # 命令行入口点,定义可以在命令行中执行的脚本
51
+ entry_points={
52
+ 'console_commands': [
53
+ 'my_command=my_package.my_module:main_function',
54
+ ],
55
+ },
56
+ # 项目的关键字,用于搜索
57
+ keywords='python, package, sample',
58
+ )