lidb 1.1.1__tar.gz → 1.1.3__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.

Potentially problematic release.


This version of lidb might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lidb
3
- Version: 1.1.1
3
+ Version: 1.1.3
4
4
  Requires-Python: >=3.12
5
5
  Description-Content-Type: text/markdown
6
6
  Requires-Dist: dynaconf>=3.2.11
@@ -15,8 +15,9 @@ from .database import (
15
15
  tb_path,
16
16
  read_mysql,
17
17
  read_ck,
18
+ scan,
18
19
  )
19
20
 
20
21
  from .parse import parse_hive_partition_structure
21
22
 
22
- __version__ = "1.1.1"
23
+ __version__ = "1.1.3"
@@ -12,6 +12,7 @@ from pathlib import Path
12
12
  from .parse import extract_table_names_from_sql
13
13
  from .init import DB_PATH, logger, get_settings
14
14
  import urllib
15
+ import polars as pl
15
16
 
16
17
  # ======================== 本地数据库 catdb ========================
17
18
  def tb_path(tb_name: str) -> Path:
@@ -111,6 +112,13 @@ def sql(query: str, abs_path: bool = False):
111
112
  new_query = pattern.sub(lambda m: convertor[m.group(0)], query)
112
113
  return pl.sql(new_query)
113
114
 
115
+ def scan(tb: str, abs_path: bool = False) -> pl.LazyFrame:
116
+ """polars.scan_parquet"""
117
+
118
+ if not abs_path:
119
+ tb = tb_path(tb)
120
+ return pl.scan_parquet(tb)
121
+
114
122
  def read_mysql(query: str, db_conf: str = "DATABASES.mysql"):
115
123
  """
116
124
  从MySQL数据库中读取数据。
@@ -127,14 +135,14 @@ def read_mysql(query: str, db_conf: str = "DATABASES.mysql"):
127
135
  import polars as pl
128
136
  try:
129
137
  db_setting = get_settings().get(db_conf, {})
130
- required_keys = ['user', 'password', 'url']
138
+ required_keys = ['user', 'password', 'url', 'db']
131
139
  missing_keys = [key for key in required_keys if key not in db_setting]
132
140
  if missing_keys:
133
141
  raise KeyError(f"Missing required keys in database config: {missing_keys}")
134
142
 
135
143
  user = urllib.parse.quote_plus(db_setting['user'])
136
144
  password = urllib.parse.quote_plus(db_setting['password'])
137
- uri = f"mysql://{user}:{password}@{db_setting['url']}"
145
+ uri = f"mysql://{user}:{password}@{db_setting['url']}/{db_setting['db']}"
138
146
  return pl.read_database_uri(query, uri)
139
147
 
140
148
  except KeyError as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lidb
3
- Version: 1.1.1
3
+ Version: 1.1.3
4
4
  Requires-Python: >=3.12
5
5
  Description-Content-Type: text/markdown
6
6
  Requires-Dist: dynaconf>=3.2.11
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "lidb"
3
- version = "1.1.1"
3
+ version = "1.1.3"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes