gomyck-tools 1.5.2__py3-none-any.whl → 1.5.4__py3-none-any.whl

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.
@@ -1,11 +1,9 @@
1
1
  import contextlib
2
2
  import datetime
3
3
  import math
4
- import threading
5
4
 
6
- from sqlalchemy import create_engine, BigInteger, Column, event
7
- from sqlalchemy.ext.declarative import declarative_base
8
- from sqlalchemy.orm import sessionmaker, Session
5
+ from sqlalchemy import create_engine, BigInteger, Column
6
+ from sqlalchemy.orm import sessionmaker, Session, declarative_base
9
7
  from sqlalchemy.sql import text
10
8
 
11
9
  from ctools import call
@@ -14,17 +12,37 @@ from ctools.pools.thread_pool import thread_local
14
12
  from ctools.web.bottle_web_base import PageInfo
15
13
 
16
14
  """
15
+ from time import sleep
16
+
17
+ from sqlalchemy import text, Column, BigInteger, String
18
+
19
+ from ctools import cid, cjson
20
+ from ctools.database import database
21
+ from ctools.database.database import BaseMixin
22
+
17
23
  class XXXX(BaseMixin):
18
24
  __tablename__ = 't_xxx_info'
19
25
  __table_args__ = {'comment': 'xxx信息表'}
20
26
  server_content: Column = Column(String(50), nullable=True, default='', comment='123123')
21
27
  server_ip: Column = Column(String(30), index=True)
22
28
  user_id: Column = Column(BigInteger)
23
-
24
- database.init_db('postgresql://postgres:123456@192.168.3.107:32566/abc', default_schema='public', db_key='source', pool_size=100)
25
- with database.get_session('source') as s:
26
- s.execute(text('insert into xxx (name) values (:name)'), {'name': string_tools.get_random_str(5)})
27
- s.commit()
29
+ database.init_db('postgresql://postgres:Hylink2014%40postgres@192.168.3.127:31199/postgres', default_schema='public', db_key='source', pool_size=100, auto_gen_table=True)
30
+ while True:
31
+ with database.get_session('source') as s:
32
+ params = {
33
+ 'obj_id': cid.get_snowflake_id(),
34
+ 'server_ip': cid.get_random_str(5),
35
+ 'user_id': 123,
36
+ 'server_content': cid.get_random_str(5),
37
+ }
38
+ s.execute(text('insert into t_xxx_info (obj_id, server_ip, user_id) values (:obj_id, :server_ip, :user_id)'), params)
39
+ s.commit()
40
+ sleep(0.2)
41
+ res = s.query(XXXX.obj_id, XXXX.server_ip, XXXX.user_id).all()
42
+ for item in res:
43
+ print(item._asdict())
44
+ print(len(res))
45
+ sleep(1)
28
46
  """
29
47
 
30
48
  Base = None
ctools/stream/ckafka.py CHANGED
@@ -15,7 +15,7 @@ from ctools.cjson import dumps
15
15
  import time
16
16
  from datetime import datetime
17
17
 
18
- from ctools import thread_pool, string_tools
18
+ from ctools import thread_pool, cid
19
19
  from ctools.ckafka import CKafka
20
20
 
21
21
  c = CKafka(kafka_url='192.168.3.160:9094', secure=True)
@@ -27,7 +27,7 @@ def send_msg():
27
27
  while True:
28
28
  command = input('发送消息: Y/n \n')
29
29
  if command.strip() not in ['N', 'n']:
30
- producer.send_msg('jqxx', '{{"jqid": "{}", "xxxx": "{}"}}'.format(string_tools.get_snowflake_id(), datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')))
30
+ producer.send_msg('jqxx', '{{"jqid": "{}", "xxxx": "{}"}}'.format(cid.get_snowflake_id(), datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')))
31
31
  else:
32
32
  break
33
33
 
@@ -41,7 +41,6 @@ if __name__ == '__main__':
41
41
 
42
42
  _default_port = 8888
43
43
 
44
-
45
44
  class CBottle:
46
45
 
47
46
  def __init__(self, bottle: Bottle, port=_default_port, quiet=False):
@@ -56,6 +55,7 @@ class CBottle:
56
55
  self.static_root = './static'
57
56
  self.download_root = './download'
58
57
  self.template_root = './templates'
58
+ self.server_path = '/api/'
59
59
 
60
60
  @self.bottle.route(['/', '/index'])
61
61
  def index():
@@ -127,21 +127,28 @@ class CBottle:
127
127
  def enable_spa_mode(self):
128
128
  @self.bottle.error(404)
129
129
  def error_404_handler(error):
130
- if request.path.startswith('/api/'): return R.error(resp=R.Code.cus_code(404, "资源未找到: {}".format(error.body)))
130
+ if request.path.startswith(self.server_path):
131
+ response.status = 404
132
+ return R.error(resp=R.Code.cus_code(404, "资源未找到: {}".format(error.body)))
131
133
  return static_file(filename=self.index_filename, root=self.index_root)
132
134
 
133
135
  @self.bottle.error(401)
134
136
  def unauthorized(error):
137
+ if request.path.startswith(self.server_path):
138
+ response.status = 401
139
+ return R.error(resp=R.Code.cus_code(401, "系统未授权! {}".format(error.body)))
135
140
  response.status=301
136
141
  response.set_header('Location', urljoin(request.url, '/'))
137
142
  return response
138
143
 
139
- def set_index(self, filename='index.html', root='./', is_tpl=False, redirect_url=None, spa=False, **kwargs):
144
+ def set_index(self, filename='index.html', root='./', is_tpl=False, redirect_url=None, spa=False, server_path="/api/", **kwargs):
140
145
  self.index_root = root
141
146
  self.index_filename = filename
142
147
  self.is_tpl = is_tpl
143
148
  self.redirect_url = redirect_url
144
- if spa: self.enable_spa_mode()
149
+ if spa:
150
+ self.server_path = server_path
151
+ self.enable_spa_mode()
145
152
  self.tmp_args = kwargs
146
153
 
147
154
  def set_static(self, root='./static'):
@@ -1,16 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gomyck-tools
3
- Version: 1.5.2
3
+ Version: 1.5.4
4
4
  Summary: A tools collection for python development by hao474798383
5
5
  Author-email: gomyck <hao474798383@163.com>
6
6
  License-Expression: Apache-2.0
7
7
  Requires-Python: >=3.11
8
8
  Description-Content-Type: text/markdown
9
9
  License-File: LICENSE
10
- Requires-Dist: jsonpickle~=3.4.2
11
- Requires-Dist: SQLAlchemy~=2.0.36
10
+ Requires-Dist: jsonpickle~=4.1.1
11
+ Requires-Dist: SQLAlchemy~=2.0.44
12
12
  Requires-Dist: chardet~=5.2.0
13
- Requires-Dist: psycopg2-binary~=2.9.10
13
+ Requires-Dist: psycopg2-binary~=2.9.11
14
14
  Requires-Dist: croniter~=5.0.1
15
15
  Requires-Dist: gmssl~=3.2.2
16
16
  Requires-Dist: psutil~=6.1.0
@@ -18,27 +18,28 @@ Requires-Dist: jsonpath_ng~=1.7.0
18
18
  Requires-Dist: bottle~=0.13.4
19
19
  Requires-Dist: requests~=2.32.3
20
20
  Requires-Dist: urllib3~=1.26.20
21
- Requires-Dist: kafka-python~=2.0.2
21
+ Requires-Dist: kafka-python~=2.3.0
22
22
  Requires-Dist: bs4~=0.0.2
23
23
  Requires-Dist: paho-mqtt~=2.1.0
24
24
  Requires-Dist: fuzzywuzzy~=0.18.0
25
25
  Requires-Dist: pymysql~=1.1.1
26
26
  Requires-Dist: pyzipper==0.3.6
27
- Requires-Dist: prometheus_client==0.21.1
27
+ Requires-Dist: prometheus_client==0.23.1
28
28
  Requires-Dist: paramiko==3.5.0
29
29
  Requires-Dist: pyjwt==2.10.1
30
- Requires-Dist: cryptography==44.0.2
31
- Requires-Dist: redis==5.2.1
32
- Requires-Dist: uvloop>=0.21.0
33
- Requires-Dist: pyyaml>=6.0.2
30
+ Requires-Dist: cryptography==46.0.3
31
+ Requires-Dist: redis==7.1.0
32
+ Requires-Dist: uvloop>=0.22.1
33
+ Requires-Dist: pyyaml>=6.0.3
34
+ Requires-Dist: uiautomation>=2.0.20
34
35
  Provides-Extra: kwc
35
36
  Requires-Dist: imageio>=2.37.0; extra == "kwc"
36
37
  Requires-Dist: wordcloud>=1.9.4; extra == "kwc"
37
38
  Requires-Dist: jieba==0.42.1; extra == "kwc"
38
- Requires-Dist: paddlepaddle==2.6.1; extra == "kwc"
39
+ Requires-Dist: paddlepaddle==3.2.2; extra == "kwc"
39
40
  Provides-Extra: cut
40
41
  Requires-Dist: jieba==0.42.1; extra == "cut"
41
- Requires-Dist: paddlepaddle==2.6.1; extra == "cut"
42
+ Requires-Dist: paddlepaddle==3.2.2; extra == "cut"
42
43
  Provides-Extra: ml
43
44
  Requires-Dist: scikit-learn>=1.7.1; extra == "ml"
44
45
  Requires-Dist: pandas>=2.3.2; extra == "ml"
@@ -43,7 +43,7 @@ ctools/cipher/rsa.py,sha256=7TPwlt-JQxDVHwvL_Am9ZKI70B2CfJDqQDf473edHSQ,2264
43
43
  ctools/cipher/sign.py,sha256=i__5PVevvR2-VjJyInmyH1QJOpmuxcA9ZIM0oxxFWVo,567
44
44
  ctools/cipher/sm_util.py,sha256=cC58wZ9IL08SvUfWUNjX5139fal2SnXGaFQ0R9WA3SE,1675
45
45
  ctools/database/__init__.py,sha256=fB36UC93Pya_1YyWGMzDy3D4tMDTBQoYK20E4wgNqec,98
46
- ctools/database/database.py,sha256=yfW8nw6_rONYz6F1343hmwy_es6eh3WEtKt9jIrStHk,7220
46
+ ctools/database/database.py,sha256=IQzPw2fOJh0Xn_OdSMeEOXBEV9YCRDoszg-dwJPXTTU,7765
47
47
  ctools/geo/__init__.py,sha256=OkUaZv5ckkXJFNbRyFZqkX5m3GxTueEGEBU99_jJQNE,98
48
48
  ctools/geo/coord_trans.py,sha256=UWCU1wnrTDU1aLSVAwmiHOeH7Pu-Dp8lDLAngDG48NM,3761
49
49
  ctools/geo/douglas_rarefy.py,sha256=bJo6TwNxPa-7-8MOi8MULxeqnz4cvIJN-oXqBDWNAVM,4883
@@ -57,7 +57,7 @@ ctools/pools/__init__.py,sha256=3_W3mvEs6pInRTvK7TqOPu9dC2z8rCHvHZFXO4KNYT8,98
57
57
  ctools/pools/process_pool.py,sha256=p6Mrh59gXrL9wpQ1dS72-GKtX_lEoAFc4_PLrXjukPk,957
58
58
  ctools/pools/thread_pool.py,sha256=ekfoxowyaKWUgevUgRbwee27IFJpqNoz-w27urlX_q8,948
59
59
  ctools/stream/__init__.py,sha256=mf8vkbcJdYpvDslgXkkHOz6rKBzU1qfxi8xQGQ1A90w,98
60
- ctools/stream/ckafka.py,sha256=_vTMIVQBjjsW1iH29BXNQrvEWGgdacDBm3ZrjBjBUGk,5938
60
+ ctools/stream/ckafka.py,sha256=qjb8FX6YDKB_ZVcRpP4ZC5irzJ4FQXh6Ev17Rl6dKOc,5920
61
61
  ctools/stream/credis.py,sha256=qxfkhtwHCvGN2eUAr9lpS42um02IXkcZTmiMXs0_Yfg,4551
62
62
  ctools/stream/mqtt_utils.py,sha256=HOT8uFOXmgPFRvxcmBPXlOJuhekupleaYwB47lGVSpk,10718
63
63
  ctools/util/__init__.py,sha256=jJLxgj-rdTVIo_czMcN83-HQI9yyBYy1L5gw8ZAbmyc,98
@@ -75,14 +75,14 @@ ctools/web/__init__.py,sha256=koSNYeKF5Z_xbp4Q2qbZ4ZP-3--1phbOYN9e4SJy_gk,98
75
75
  ctools/web/aio_web_server.py,sha256=p46BOU3_m4Jb57yAACeedKjhlFc1YC0QJSUe2selBgA,5693
76
76
  ctools/web/api_result.py,sha256=i1MjTnnlgkWl_q07xr-TLQeLYlXEh4DEclUFE414nSk,1568
77
77
  ctools/web/bottle_web_base.py,sha256=iQZJtRQH3HJ-P-48Gspvp1VEd6boAlZfiat3H8E5bBU,8763
78
- ctools/web/bottle_webserver.py,sha256=Gke_rjRrnUAl0rVe8rkTaq7SPrxb0cHKV_Ln6l7fqus,6854
78
+ ctools/web/bottle_webserver.py,sha256=9IcmQ8dHtbR7VW29sqZ_NM954KNf-V_Z6rJZ4pnz4P4,7169
79
79
  ctools/web/bottle_websocket.py,sha256=xsu9fAtTuR5DsSsQjiBfaYxLjOWFyfr1sYM6cktTovI,1957
80
80
  ctools/web/ctoken.py,sha256=WaB29kqGlKAh21aUw5avl2h8AgLD1aESw8KCpqaN5nM,2539
81
81
  ctools/web/download_util.py,sha256=v0JTXiED1bvoWFfwfd-LD5s7_aoRQ0lCkaGwSnSp7WI,1954
82
82
  ctools/web/params_util.py,sha256=eJDV3PSq-ZHb8UZf6xqs8kOhbyZzits1H9yPoUBIDXg,828
83
83
  ctools/web/upload_util.py,sha256=z1QQCi4SFx08jrAQH5-Y_ShiM4MghuD_5Qz6V9KK_4U,1076
84
- gomyck_tools-1.5.2.dist-info/licenses/LICENSE,sha256=X25ypfH9E6VTht2hcO8k7LCSdHUcoG_ALQt80jdYZfY,547
85
- gomyck_tools-1.5.2.dist-info/METADATA,sha256=g3hKnHGV8s5DRPzimxL0XBhLbvHelBTKi0fAhN_iwto,1826
86
- gomyck_tools-1.5.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
87
- gomyck_tools-1.5.2.dist-info/top_level.txt,sha256=-MiIH9FYRVKp1i5_SVRkaI-71WmF1sZSRrNWFU9ls3s,7
88
- gomyck_tools-1.5.2.dist-info/RECORD,,
84
+ gomyck_tools-1.5.4.dist-info/licenses/LICENSE,sha256=X25ypfH9E6VTht2hcO8k7LCSdHUcoG_ALQt80jdYZfY,547
85
+ gomyck_tools-1.5.4.dist-info/METADATA,sha256=byhNUGqMt6IFVmf5ROsxNuuK3ST4fjcPTKqZa8pzuC4,1862
86
+ gomyck_tools-1.5.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
87
+ gomyck_tools-1.5.4.dist-info/top_level.txt,sha256=-MiIH9FYRVKp1i5_SVRkaI-71WmF1sZSRrNWFU9ls3s,7
88
+ gomyck_tools-1.5.4.dist-info/RECORD,,