sqlalchemy-query-helpers 1.0.2__py3-none-any.whl → 1.0.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.
Potentially problematic release.
This version of sqlalchemy-query-helpers might be problematic. Click here for more details.
- sqlalchemy_query_helpers/main.py +5 -2
- sqlalchemy_query_helpers-1.0.4.dist-info/METADATA +68 -0
- sqlalchemy_query_helpers-1.0.4.dist-info/RECORD +7 -0
- sqlalchemy_query_helpers-1.0.2.dist-info/METADATA +0 -15
- sqlalchemy_query_helpers-1.0.2.dist-info/RECORD +0 -7
- {sqlalchemy_query_helpers-1.0.2.dist-info → sqlalchemy_query_helpers-1.0.4.dist-info}/LICENSE +0 -0
- {sqlalchemy_query_helpers-1.0.2.dist-info → sqlalchemy_query_helpers-1.0.4.dist-info}/WHEEL +0 -0
- {sqlalchemy_query_helpers-1.0.2.dist-info → sqlalchemy_query_helpers-1.0.4.dist-info}/top_level.txt +0 -0
sqlalchemy_query_helpers/main.py
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
from sqlalchemy import create_engine, MetaData, Table, select
|
|
2
|
-
from sqlalchemy.orm import sessionmaker, Query, DeclarativeMeta
|
|
2
|
+
from sqlalchemy.orm import sessionmaker, Query, DeclarativeMeta, session
|
|
3
3
|
from sqlalchemy.orm.attributes import InstrumentedAttribute
|
|
4
4
|
from sqlalchemy.dialects.mysql import insert
|
|
5
5
|
from sqlalchemy.exc import IntegrityError
|
|
6
6
|
from sqlalchemy import sql
|
|
7
7
|
from typing import Iterable, Union, List, Sequence
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
|
|
10
10
|
class DB:
|
|
11
11
|
is_updated = False
|
|
12
12
|
name: str
|
|
13
13
|
base: DeclarativeMeta = None
|
|
14
|
+
engine = None
|
|
15
|
+
Session: sessionmaker = None
|
|
16
|
+
session: session.Session = None
|
|
14
17
|
|
|
15
18
|
def __init__(self, db_name, base: DeclarativeMeta, use_os_env=False, echo=False):
|
|
16
19
|
self.base = base
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: sqlalchemy-query-helpers
|
|
3
|
+
Version: 1.0.4
|
|
4
|
+
Summary: Some helpers for SQLAlchemy
|
|
5
|
+
Author-email: vladiscripts <blagopoluchie12@gmail.com>
|
|
6
|
+
Project-URL: Homepage, https://github.com/vladiscripts/sqlalchemy-query-helpers
|
|
7
|
+
Project-URL: Issues, https://github.com/vladiscripts/sqlalchemy-query-helpers/issues
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Requires-Python: >=3.10
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Requires-Dist: sqlalchemy
|
|
15
|
+
|
|
16
|
+
Пакет содержит хелперы для пакета SQLAlchmy - методов `insert`, `upsert`, `update` и другое.
|
|
17
|
+
|
|
18
|
+
Инициализация: `db = DB(db_name, Base, use_os_env=False, echo=False)`. Где:
|
|
19
|
+
* `use_os_env`. Значение `True` означает брать определения для подключения к базе данных из переменных окружения хоста: `os.environ['DB_USER'], os.environ['DB_PASSWORD'], os.environ['DB_HOST']`. При значении `False` переменные user, password, host берутся из файла `cfg.py`, который должен быть создан в каталоге скрипта.
|
|
20
|
+
|
|
21
|
+
## Экземпляр класса содержит
|
|
22
|
+
Методы:
|
|
23
|
+
* `insert_many`, `upsert` и другие
|
|
24
|
+
|
|
25
|
+
Свойства:
|
|
26
|
+
* `engine` - подключение к базе данных
|
|
27
|
+
* `name` - имя базы данных
|
|
28
|
+
* `base`: DeclarativeMeta
|
|
29
|
+
* `Session: sessionmaker`
|
|
30
|
+
* `session: session.Session`
|
|
31
|
+
|
|
32
|
+
## Пример использования
|
|
33
|
+
|
|
34
|
+
Определяем модель таблицы в файле `db_model.py`:
|
|
35
|
+
```python
|
|
36
|
+
from sqlalchemy import Column, Integer, String, Date, ForeignKey
|
|
37
|
+
from sqlalchemy.dialects.mysql import TINYINT, SMALLINT, INTEGER, ENUM, FLOAT
|
|
38
|
+
from sqlalchemy.schema import Index
|
|
39
|
+
from sqlalchemy.orm import declarative_base
|
|
40
|
+
|
|
41
|
+
Base = declarative_base()
|
|
42
|
+
|
|
43
|
+
db_name = 'some_database'
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class ATable(Base):
|
|
47
|
+
__tablename__ = 'A_table'
|
|
48
|
+
id = Column(INTEGER(unsigned=True), primary_key=True, autoincrement=True)
|
|
49
|
+
name = Column(String(100), nullable=False)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Основной файл:
|
|
53
|
+
```pythonа
|
|
54
|
+
from sqlalchemy_query_helpers import DB
|
|
55
|
+
from db_model import db_name, Base, ATable
|
|
56
|
+
|
|
57
|
+
db = DB(db_name, Base)
|
|
58
|
+
|
|
59
|
+
values_from_database = db.session.query(ATable).all()
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
#### Пример `cfg.py`
|
|
63
|
+
```python
|
|
64
|
+
# Settings of database
|
|
65
|
+
host = '100.100.100.100'
|
|
66
|
+
user = 'root'
|
|
67
|
+
password = 'qwerty'
|
|
68
|
+
```
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
sqlalchemy_query_helpers/__init__.py,sha256=xxmsXX2HKm1K8Ay9sy_tXGkPDWz3NXJI0s4xiwPckr0,39
|
|
2
|
+
sqlalchemy_query_helpers/main.py,sha256=pJucqLOdc6E6lBQmx0Holta4Oo8xJpi_RB9fxS_d0sA,12536
|
|
3
|
+
sqlalchemy_query_helpers-1.0.4.dist-info/LICENSE,sha256=XUL1pa84eZAnKR9S2WnYrv2M523Oysejy3KPlVSyCks,1069
|
|
4
|
+
sqlalchemy_query_helpers-1.0.4.dist-info/METADATA,sha256=jkKRiQS0YVyrn7iLsK-k-7CPELyLWn_59b5-CMAccCY,2523
|
|
5
|
+
sqlalchemy_query_helpers-1.0.4.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
|
6
|
+
sqlalchemy_query_helpers-1.0.4.dist-info/top_level.txt,sha256=3CUM4jiTua2frHF1satgUAYlW0QfDsvdkxO_6Fj_0zY,25
|
|
7
|
+
sqlalchemy_query_helpers-1.0.4.dist-info/RECORD,,
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: sqlalchemy-query-helpers
|
|
3
|
-
Version: 1.0.2
|
|
4
|
-
Summary: Some helpers for SQLAlchemy
|
|
5
|
-
Author-email: vladiscripts <blagopoluchie12@gmail.com>
|
|
6
|
-
Project-URL: Homepage, https://github.com/vladiscripts/sqlalchemy-query-helpers
|
|
7
|
-
Project-URL: Issues, https://github.com/vladiscripts/sqlalchemy-query-helpers/issues
|
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
-
Classifier: Operating System :: OS Independent
|
|
11
|
-
Requires-Python: >=3.10
|
|
12
|
-
Description-Content-Type: text/markdown
|
|
13
|
-
License-File: LICENSE
|
|
14
|
-
Requires-Dist: sqlalchemy
|
|
15
|
-
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
sqlalchemy_query_helpers/__init__.py,sha256=xxmsXX2HKm1K8Ay9sy_tXGkPDWz3NXJI0s4xiwPckr0,39
|
|
2
|
-
sqlalchemy_query_helpers/main.py,sha256=QKswZj-gHXAsDjdZbSAnv-vfkwjcfAP8JbN977fQfjs,12464
|
|
3
|
-
sqlalchemy_query_helpers-1.0.2.dist-info/LICENSE,sha256=XUL1pa84eZAnKR9S2WnYrv2M523Oysejy3KPlVSyCks,1069
|
|
4
|
-
sqlalchemy_query_helpers-1.0.2.dist-info/METADATA,sha256=vvSBxOyaSyOL4_ntc3p8FL0JkiOhJCLaPsfLOiBCKjY,584
|
|
5
|
-
sqlalchemy_query_helpers-1.0.2.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
|
6
|
-
sqlalchemy_query_helpers-1.0.2.dist-info/top_level.txt,sha256=3CUM4jiTua2frHF1satgUAYlW0QfDsvdkxO_6Fj_0zY,25
|
|
7
|
-
sqlalchemy_query_helpers-1.0.2.dist-info/RECORD,,
|
{sqlalchemy_query_helpers-1.0.2.dist-info → sqlalchemy_query_helpers-1.0.4.dist-info}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
{sqlalchemy_query_helpers-1.0.2.dist-info → sqlalchemy_query_helpers-1.0.4.dist-info}/top_level.txt
RENAMED
|
File without changes
|